如何确定 Android 应用程序何时退出 - 应用程序生命周期而不是 activity 生命周期
How to determine when Android application is being exited - application lifecycle instead of activity lifecycle
我有一个多 activity Android 应用程序,它在启动时会创建一个 ScheduledExecutorService。当用户离开应用程序时,ScheduledExecutorService 保持 运行。我想弄清楚的是,在应用程序停止之前,我可以在哪里向 ScheduledExecutorService 发出停止信号?我不想把它放在每个 activity 的 onPause/onStop 中,因为我不想在活动之间停止 ScheduledExecutorService。我只希望它在整个应用程序停止时停止。有什么想法吗?
感谢您的帮助!
为此,您可以使用新的 Android 生命周期功能。与其监听 Activity 的生命周期,不如监听整个应用程序的生命周期。只需简单地创建一个应用程序 class 并向其中添加以下代码:
public class MyApplication extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onEnterForeground(){
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onEnterBackground(){
}
}
在您的 gradle 文件中添加此依赖项:
implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
你应该会得到你需要的效果。
我有一个多 activity Android 应用程序,它在启动时会创建一个 ScheduledExecutorService。当用户离开应用程序时,ScheduledExecutorService 保持 运行。我想弄清楚的是,在应用程序停止之前,我可以在哪里向 ScheduledExecutorService 发出停止信号?我不想把它放在每个 activity 的 onPause/onStop 中,因为我不想在活动之间停止 ScheduledExecutorService。我只希望它在整个应用程序停止时停止。有什么想法吗?
感谢您的帮助!
为此,您可以使用新的 Android 生命周期功能。与其监听 Activity 的生命周期,不如监听整个应用程序的生命周期。只需简单地创建一个应用程序 class 并向其中添加以下代码:
public class MyApplication extends Application implements LifecycleObserver {
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onEnterForeground(){
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onEnterBackground(){
}
}
在您的 gradle 文件中添加此依赖项:
implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
你应该会得到你需要的效果。