Android -全局知道应用程序何时进入后台/用户何时退出



我知道对于一个活动,你可以在onStop方法上重写onStart来知道一个活动何时开始/退出。我遇到的问题是我想保持一个会话打开,当用户打开应用程序,直到它进入后台/用户退出,并绑定到onStop(结束会话)为每个活动不给我想要的结果,它结束会话每一个新的活动。所以我想知道我有什么办法知道用户什么时候把应用放在后台或退出。

我想到的一件事是跟踪onStart和onStop(或活动生命周期中的任何两个组合),所以我知道如果我有一个onStop没有onStart在应用程序退出之前。这似乎很hacky,不确定这是否是正确的地方开始。

感谢您的任何输入。

您可以扩展Application类并使用registerActivityLifecycleCallbacks来构建逻辑。

例如使用以下两个回调:
@Override
public void onActivityResumed(Activity activity) {
    mBackground = false;
}
@Override
public void onActivityPaused(Activity activity) {
    mBackground = true;
}

https://developer.android.com/reference/android/app/Application.html registerActivityLifecycleCallbacks (android.app.Application.ActivityLifecycleCallbacks)

最新更新