0
我知道,當活動破壞時,不執行unregisterReveiver(BroadcastReceiver)將導致內存泄漏。但我不明白爲什麼會導致內存泄漏。爲什麼不做unregisterReceiver(BroadcastReceiver)同時銷燬活動會導致內存泄漏?
我正在使用LocalBroadcastManager在活動中註冊接收者。即使活動破壞,BroadcastReceiver將持有上下文引用?
我知道,當活動破壞時,不執行unregisterReveiver(BroadcastReceiver)將導致內存泄漏。但我不明白爲什麼會導致內存泄漏。爲什麼不做unregisterReceiver(BroadcastReceiver)同時銷燬活動會導致內存泄漏?
我正在使用LocalBroadcastManager在活動中註冊接收者。即使活動破壞,BroadcastReceiver將持有上下文引用?
我想這是保持BroadcastReceiver實例的LocalBroadcastManager。
因此,當活動被破壞時,BroadcastReceiver已過期,應該取消註冊,以便清理它。
通過不做unregisterReceiver(BroadcastReceiver),無用的BroadcastReceiver被保留,這就是導致內存泄漏的原因。
如果活動停止了x次,則會有x BroadcastReceiver泄漏。