我有一些不清楚的情况:
最后一个持有 Activity 的引用被销毁后,静态单例会被垃圾回收吗?因为Application中没有更多对单例实例的引用。那么我可以依赖单身人士吗?
由官方提供安卓文档 http://developer.android.com/reference/android/app/Application.html:
通常不需要子类化应用程序。在大多数情况下,
静态单例可以以更加模块化的方式提供相同的功能
方式。
通过一些帖子:
https://web.archive.org/web/20160729201921/http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/ https://web.archive.org/web/20160729201921/http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/
在开发应用程序时,我发现
有时一些绑定到活动的静态变量会发生
即使之前已初始化,也未初始化!我
认为当静态变量被初始化时,它会保持不变
应用程序的整个生命周期,但情况似乎并非如此。
换句话说,如果没有任何东西保存对我的静态单例类的引用,那么如何防止它被垃圾收集和销毁?
不,因为如果它是单例,它会存储为static
字段在其类中,并且通常单例不会被客户端破坏,即您不会放置静态方法deleteInstance()
这将引用设置为null
这样,如果没有其他人使用它,它就有资格进行垃圾收集。对于静态字段,当加载该类的类加载器被丢弃时,就会发生垃圾回收。
为此,关键字static
如果它引用Activity对象,它本身可能会导致内存泄漏,所以使用它时应该非常小心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)