http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html不包括发布方法。这是否意味着它将自动进行GC编辑?谢谢。
发布于 2014-01-25 00:01:26
LocalBroadcastManager不包括发布方法。这是否意味着它将自动进行GC编辑?
不,不会的。但它也不必这么做。
它从你第一次调用应用程序中任何地方的时候起就会存在,直到你的应用程序进程终止为止。
一个名为static的getInstance方法返回它所在的类的一个实例,在大多数情况下意味着您正在处理一个辛格尔顿。
单例是指在整个应用程序中只存在一次的对象,它们的行为类似于全局变量(通常被认为是坏处 几个原因)。
如果注册接收广播的代码中的位置使用与广播发送的广播管理器不同的广播管理器,则整个广播机制将崩溃。代码确保每个人都使用相同的代码,使其成为一个单例。
另一方面,如果您将活动上下文作为参数,LocalBroadcastManager将不会泄漏您的活动上下文。它将调用context.getApplicationContext()来获取应用程序上下文,应用程序上下文本身是一个可以安全地永远保持引用的单例。
代码创建单例的方式以及如何处理单例中的上下文,将在本文的进一步详细信息中描述:背景,什么背景? (注意:以线程安全的方式-遗憾的是,在那篇文章中缺少了)
https://stackoverflow.com/questions/21343793
复制相似问题