如果我们不注销BroadcastReceiver,会发生什么?

时间:2016-05-04 08:50:39

标签: java android

假设我动态注册 BroadcastReceiver ,它是onCreate()活动的内部类,并且不会在代码中的任何位置取消注册。

现在假设finish()被调用,一段时间后,应用程序再次打开。是否会使用新的接收器对象?考虑到具有相同意图过滤器的旧接收器对象可能仍在内存中......

1 个答案:

答案 0 :(得分:0)

如果您忘记取消注册接收者内部活动类,则Android系统会报告泄露的广播接收器错误。

但是如果BroadcastReceiver是由服务动态注册的,那么如果确保在销毁服务时未注册它,则不会泄露。重新启动服务后(在被系统杀死之后),它将再次尝试更新。当此更新失败时,您将再次注册BroadcastReceiver以侦听连接更改。