在 Android 应用程序类中,您可以注册/取消注册 ActivityLifecycleCallbacks ,它允许您在一个地方监视应用程序中的 Activity 生命周期事件(如果您愿意的话)。
在哪里打电话比较合适unregisterActivityLifecycleCallbacks ?我正在注册 onCreate ,并且认为 onTerminate 只是从方法的名称来看是合适的地方,但文档说 onTerminate():
This method is for use in emulated process environments. It will never be called on a production Android device, where processes are removed by simply killing them; no user code (including this callback) is executed when doing so.
我在 Application 类中没有看到任何其他进行“关闭”类型回调的方法。你甚至需要注销?
最佳答案
Simon这一点是对的。 registerActivityLifecycleCallbacks
不需要对 unregisterActivityLifecycleCallbacks
的匹配调用。如 this SO question 中所述您无法检测到您的应用程序何时被杀死。因此,没有“合乎逻辑”的地方可以取消注册您的回调。即使有,您的 Application
实例也会在在最后一个 Activity
操作发生之后被杀死,并且您的 Application
杀死 mActivityLifecycleCallbacks
列表,该列表包含对您的回调的引用。
TL;DR - 不用担心调用 unregisterActivityLifecycleCallbacks
,只有当您想在 Application
期间停止跟踪 Activity
操作时,它才会出现的正常生命周期。
关于android - 注销 Activity 生命周期回调的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865187/