android - 本地管理的广播接收器泄漏?

标签 android memory-leaks broadcastreceiver localbroadcastmanager

当应用程序被系统杀死时,本地(即使用 LocalBroadcastManager 管理的)BroadcastReceiver 是否可能泄漏?

我需要它的具体用例是我想在 Activity 的 onCreate/onDestroy 中注册/取消注册 BroadcastReceiver(我需要接收器在 Activity 不可见时处于 Activity 状态),但我不会喜欢通过这样做冒导致内存泄漏的风险。据我了解,如果系统销毁了单个 Activity ,则 onDestroy 运行并且接收器未注册。如果应用程序被杀死怎么办?接收器是留在附近,还是在本地,它会随着应用程序一起被杀死吗?

最佳答案

如果你往里看LocalBroadcastManager source code ,你会看到它实际上只是一个普通类(如你所说的“本地”),带有一个 Map 将各种 BroadcastReceiver 与相应的 List 连接起来IntentFilter 的 >。

在“系统级别”没有注册任何内容,所以否:如果应用程序被终止,LocalBroadcastManager 类也会随之终止,并且不会发生泄漏

关于android - 本地管理的广播接收器泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349588/

相关文章:

android - 为什么 ButterKnife 对 @OnClick 方法使用 DebouncingOnClickListener?

java - 如何将Android应用程序部署到多部电话?

android - 如何在 onPause 后恢复 ExoPlayer

iphone - 固有的 UIView 泄漏

android.intent.action.SCREEN_ON 不能用作接收器 Intent 过滤器

android - 无法使用 PendingIntent.FLAG_IMMUTABLE 获取所选第三方应用程序的包名称

android - 是否有唯一的 Android 设备 ID?

iphone - App delegate 分配的对象显示在多个 subview 中?

java - 修复 Java 内存泄漏的学习站点

java - 不运行BroadcastReceiver代码