当应用程序在Android上被杀时,注册的Receiver会发生什么?

时间:2013-06-23 07:27:20

标签: android broadcastreceiver

我想监控网络连接的变化。 (我知道怎么做) 我没有使用清单文件,因为我不希望我的封闭应用程序被唤醒以进行连接更改。所以,我在我的主应用程序对象(而不是活动)中注册我的自定义BroadcastReceiver。

如果我在我的活动中这样做,我可以在onStop或onDestroy上取消注册。

由于我不在活动中这样做,当应用程序终止时会发生什么(由系统强制执行或者用户按下后退按钮(例如)会干净地杀死?)(我不知道应用程序什么时候终止所以我不能手动取消注册..我应该吗?)

注册的接收器是否仍然有效?应用程序会被唤醒吗?是否会完全安全地清洁?

1 个答案:

答案 0 :(得分:0)

您应该在onStop和onDestroy上取消注册。 这将照顾你的所有用例。

由于您在活动中动态使用Receiver,而不是从清单中使用Receiver,因此只有在Receiver注册后才会收到意图。

因此,如果您注册onResume并取消注册onStop和onDestroy,只要您的活动在前台和其他时间对用户可见,它就只会收到意图。