如果我打算在应用程序处于后台时接收广播,我应该在哪里注销 BroadcastReceiver?
Where should I unregister a BroadcastReceiver if I intend on receiving broadcasts even when the app is in the background?
为了我的目的,只要应用程序是 运行(前景或背景),我就需要收听 CONNECTIVITY_CHANGE 广播。
如果我在 onDestroy() 方法中取消注册,如果我导航回第一个 activity,我将丢失接收器,因为第一个 activity 被带到顶部。
如果我在 onPause() 中取消注册,当应用程序在后台 运行 但没有被杀死时,我无法听到变化。
这会导致接收者在强行终止应用程序时泄漏意图。
我的案例的理想解决方案是什么?
提前致谢:)
如果应用程序被强制停止,无论您做什么,它都会泄漏。当您被强制停止时,您没有机会注销任何内容。
但本着您问题的更大精神 - 如果您需要一个地方来注册长期接收者并随后注销它,答案就在服务中。
为了我的目的,只要应用程序是 运行(前景或背景),我就需要收听 CONNECTIVITY_CHANGE 广播。
如果我在 onDestroy() 方法中取消注册,如果我导航回第一个 activity,我将丢失接收器,因为第一个 activity 被带到顶部。
如果我在 onPause() 中取消注册,当应用程序在后台 运行 但没有被杀死时,我无法听到变化。
这会导致接收者在强行终止应用程序时泄漏意图。
我的案例的理想解决方案是什么?
提前致谢:)
如果应用程序被强制停止,无论您做什么,它都会泄漏。当您被强制停止时,您没有机会注销任何内容。
但本着您问题的更大精神 - 如果您需要一个地方来注册长期接收者并随后注销它,答案就在服务中。