MainActivity泄露了IntentReceiver

时间:2013-10-06 12:50:29

标签: android broadcastreceiver

当我以Programattically方式注册My BroadcastReceiver时,我在LogCat中遇到错误。我知道我没有在Activity中取消注册我的BroadcastReceiver。

但是当我通过Manifest注册时,我没有收到此错误。为什么??????

还有什么意思MainActivity泄露了IntentReceiver ??? 。它会在记忆中产生任何问题。

如果我没有取消注册My BroadcastReceiver那么会发生什么?

    10-06 18:09:38.057: E/ActivityThread(15435): Activity com.collabera.labs.sai.MainActivity

 has leaked IntentReceiver com.collabera.labs.sai.MyBroadcastReceiver@41c8bc68 that was 

originally registered here. Are you missing a call to unregisterReceiver()?

1 个答案:

答案 0 :(得分:0)

当对象存储在内存中但无法访问时会发生内存泄漏,因为删除了指向该对象的指针。它会降低性能,因为它会占用内存,在最坏的情况下系统会崩溃。

由于Android运行的是Java,垃圾收集器应该处理它,但它当然更喜欢正确处理它而不是将它留给GC。

以下是有关内存泄漏的一些信息:

Wikipedia - Memory leaks

Android - Avoiding memory leaks