Android 中的静态单例生命周期

2024-04-05

我有一些不清楚的情况:

最后一个持有 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(使用前将#替换为@)

Android 中的静态单例生命周期 的相关文章

随机推荐