在Android Application类中,您可以注册/取消注册ActivityLifecycleCallbacks,这样您就可以在一个地方监控应用程序中的Activity生命周期事件(如果您愿意的话)。
拨打unregisterActivityLifecycleCallbacks的适当位置在哪里?我正在onCreate注册,并且认为onTerminate只是从方法名称开始,但文档说明 onTerminate():
此方法适用于模拟过程环境。永远不会 在生产Android设备上调用,删除进程 简单地杀死他们;没有用户代码(包括此回调) 执行时执行。
我在Application类中没有看到任何其他方法,其中进行了'shutdown'类型的回调。你甚至需要取消注册吗?
答案 0 :(得分:25)
Simon对此是正确的。 registerActivityLifecycleCallbacks
不需要匹配unregisterActivityLifecycleCallbacks
的匹配。如this SO question中所述,您无法检测到应用程序何时被杀死。因此,取消注册回调没有“合乎逻辑”的地方。即使有,Application
实例在最后Activity
次操作后被杀死,并且Application
的查杀会导致mActivityLifecycleCallbacks
被杀无论如何,它都包含对你的回调的引用。
TL; DR - 请不要担心拨打unregisterActivityLifecycleCallbacks
,只有在Activity
正常生命周期内才停止跟踪Application
操作时才会出现此问题。