首页 文章

为什么不在破坏活动的同时做unregisterReceiver(BroadcastReceiver)会导致内存泄漏?

提问于
浏览
1

我知道,当Activity破坏时,不执行unregisterReveiver(BroadcastReceiver)会导致内存泄漏 . 但我不明白为什么它会导致内存泄漏 .

我正在使用LocalBroadcastManager在活动中注册接收器 . 即使活动销毁,BroadcastReceiver也会保存上下文引用?

1 回答

  • 2

    我想是LocalBroadcastManager保留了BroadcastReceiver的实例 .

    因此,当活动被销毁时,BroadcastReceiver已过期,应该取消注册,以便清除它 .

    通过不执行unregisterReceiver(BroadcastReceiver),保留无用的BroadcastReceiver,这就是导致内存泄漏的原因 .

    如果活动停止x次,则会有x BroadcastReceiver泄露 .

相关问题