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

Android - globally know when app goes into background / user quits

我知道对于 activity 您可以重写 onStart onStop 方法以了解 activity 何时开始/退出。我 运行 遇到的问题是我想在用户打开应用程序时保持会话打开,直到它进入后台/用户退出并为每个 activity 绑定到 onStop(用于结束会话)没有给出我想要的结果,它在每个新 activity 结束会话。所以我想知道我有什么选择可以知道用户何时将应用程序置于后台或退出。

我想到的一件事是跟踪 onStart 和 onStop(或 activity 生命周期中的任意两个组合)所以我知道在应用程序退出之前我是否有一个没有 onStart 的 onStop。这看起来很老套,不确定它是否是正确的起点。

感谢您的任何意见。

您可以扩展 Application class 并使用 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)