如果我打算接收广播,即使应用程序在后台,我应该在哪里取消注册BroadcastReceiver?

时间:2017-05-12 18:20:43

标签: android broadcastreceiver onpause ondestroy

出于我的目的,只要应用程序正在运行(前景或后台),我就需要收听CONNECTIVITY_CHANGE广播。

如果我在onDestroy()方法中取消注册,如果我导航回第一个活动,则会丢失接收器,因为第一个活动被带到顶部。

如果我在onPause()中取消注册,当应用程序在后台运行但未被杀死时,我无法收听更改。

当强行杀死应用程序时,这会导致接收方泄露意图。

对我的案例来说,理想的解决方案是什么?

提前致谢:)

1 个答案:

答案 0 :(得分:1)

如果应用程序被强制停止,无论您做什么,它都会泄漏。当你被迫停止时,你没有机会取消任何注册。

但是在更大的问题精神中 - 如果你需要一个注册长期接收者的地方,然后取消注册,那么答案就在服务中。