如何确定何时退出Android应用程序-应用程序生命周期而不是活动生命周期

时间:2019-12-05 16:16:20

标签: android background-process android-lifecycle

我有一个多功能Android应用程序,启动后会创建ScheduledExecutorService。当用户离开应用程序时,ScheduledExecutorService继续运行。我要弄清楚的是,在停止应用程序之前,我可以在哪里指示ScheduledExecutorService停止?我不想将其放在每个活动的onPause / onStop中,因为我不想在活动之间停止ScheduledExecutorService。我只希望它在整个应用程序停止时停止。有什么想法吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

为此,您可以使用新的Android Lifecycle功能。不必听Activity的生命周期,而只是听整个应用程序的生命周期。只需创建一个Application类并向其中添加以下代码:

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"

您应该获得所需的效果。

相关问题