当我以编程方式注册我的BroadcastReceiver时,我在LogCat中得到以下错误。我知道我没有在活动中注销我的BroadcastReceiver。
但是当我通过Manifest注册时,我没有得到这个错误。为什么?
这也意味着MainActivity泄露了IntentReceiver?它会在内存中产生任何问题吗?
如果我没有注销我的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()?发布于 2013-10-07 21:34:21
当对象存储在内存中但无法访问时,就会发生内存泄漏,因为指向该对象的指针已被删除。它会降低性能,因为它会占用内存,在最坏的情况下,系统会崩溃。
由于Android运行的是Java,垃圾收集器应该会处理它,但它当然更倾向于正确地处理它,而不是把它留给GC。
以下是有关内存泄漏的一些信息:
Wikipedia - Memory leaks
Android - Avoiding memory leaks
https://stackoverflow.com/questions/19209031
复制相似问题