我知道,当Activity破坏时,不执行unregisterReveiver(BroadcastReceiver)会导致内存泄漏 . 但我不明白为什么它会导致内存泄漏 .
我正在使用LocalBroadcastManager在活动中注册接收器 . 即使活动销毁,BroadcastReceiver也会保存上下文引用?
我想是LocalBroadcastManager保留了BroadcastReceiver的实例 .
因此,当活动被销毁时,BroadcastReceiver已过期,应该取消注册,以便清除它 .
通过不执行unregisterReceiver(BroadcastReceiver),保留无用的BroadcastReceiver,这就是导致内存泄漏的原因 .
如果活动停止x次,则会有x BroadcastReceiver泄露 .
1 回答
我想是LocalBroadcastManager保留了BroadcastReceiver的实例 .
因此,当活动被销毁时,BroadcastReceiver已过期,应该取消注册,以便清除它 .
通过不执行unregisterReceiver(BroadcastReceiver),保留无用的BroadcastReceiver,这就是导致内存泄漏的原因 .
如果活动停止x次,则会有x BroadcastReceiver泄露 .