繁体   English   中英

如果我们不取消注册BroadcastReceiver会发生什么?

[英]What would happen if we don't unregister a BroadcastReceiver?

假设我在onCreate()动态注册了BroadcastReceiver ,它是Activity的内部类,并且没有在代码中的任何地方注销它。

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

如果您忘记注销接收器内部的Activity类,则Android系统会报告泄漏的广播接收器错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM