26

在 Android Application 类中,您可以注册/取消注册ActivityLifecycleCallbacks,它允许您在一个地方监视应用程序中的 Activity 生命周期事件(如果您愿意的话)。

调用unregisterActivityLifecycleCallbacks的合适位置在哪里?我在onCreate注册,并认为 onTerminate 只是从方法的名称来看是合适的地方,但文档说onTerminate()

此方法用于模拟过程环境。它永远不会在生产 Android 设备上调用,在这些设备上,只需杀死进程即可删除它们;这样做时不会执行任何用户代码(包括此回调)。

我在 Application 类中看不到任何其他进行“关闭”类型回调的方法。你甚至需要注销?

4

1 回答 1

30

西蒙在这点上是对的。registerActivityLifecycleCallbacks不需要对unregisterActivityLifecycleCallbacks. 如this SO question中所述,您无法检测到您的应用程序何时被终止。因此,没有“合乎逻辑”的地方可以取消注册您的回调。即使有,您的Application实例也会最后一个Activity操作发生后被终止,并且您的终止会终止包含对您的回调的引用Application的列表。mActivityLifecycleCallbacks

TL;DR - 不要担心调用unregisterActivityLifecycleCallbacks,只有当你想在你的正常生命周期中停止跟踪Activity操作时,它才会出现。Application

于 2014-04-25T17:16:20.407 回答