android - 注销 Activity 生命周期回调的正确方法是什么?

标签 android activity-lifecycle application-lifecycle

在 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/

相关文章:

c# - 为什么即使处理程序在 WPF 应用程序生命周期中是异步无效的,Application.Exit 事件仍然有效?

android - 如何处理 Android 中涉及套接字的 Activity 生命周期?

android - 异步任务 doInBackground();一个一个执行多个方法

android - 通过单击/触摸外部 : 删除 fragment

android - 开始太多 Activity ?

android - 区分按下 "home"按钮和打开另一个Activity

android - 进程终止后不调用 onActivityResult

ios - 任何iOS应用程序启动时首先调用哪个方法和函数?

android - 即使允许也允许返回 false

Android:在哪里可以找到 startSubActivity()?