如何确定 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"

你应该会得到你需要的效果。