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