我正在尝试编写一个应用程序,当它在一段时间后回到前台时会执行特定的操作。有没有办法检测应用程序何时被发送到后台或被带到前台?
原文由 iHorse 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试编写一个应用程序,当它在一段时间后回到前台时会执行特定的操作。有没有办法检测应用程序何时被发送到后台或被带到前台?
原文由 iHorse 发布,翻译遵循 CC BY-SA 4.0 许可协议
LifecycleObserver
已弃用。使用 DefaultLifecycleObserver
代替:
public class MyApplication extends Application implements DefaultLifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@Override
public void onStart(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onStart(owner);
}
@Override
public void onResume(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onResume(owner);
}
@Override
public void onPause(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onPause(owner);
}
@Override
public void onStop(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onStop(owner);
}
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onDestroy(owner);
}
}
依赖项:
implementation 'androidx.lifecycle:lifecycle-common:2.5.1'
implementation 'androidx.lifecycle:lifecycle-process:2.5.1'
原文由 Micro 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.7k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.2k 阅读
1 回答1.2k 阅读
1 回答564 阅读✓ 已解决
onPause()
和onResume()
方法在应用程序进入后台并再次进入前台时被调用。但是,它们也会在应用程序第一次启动时以及在它被终止之前被调用。您可以在 Activity 中阅读更多内容。没有任何直接的方法可以在后台或前台获取应用程序状态,但即使我也遇到了这个问题并找到了解决方案
onWindowFocusChanged
和onStop
。有关更多详细信息,请在此处查看 _Android:检测 Android 应用程序何时进入后台并在没有 getRunningTasks 或 getRunningAppProcesses 的情况下返回前台的解决方案_。