在android中,推荐使用静态变量吗?例如,用Java实现Singleton模式,我通常这样做:
private static A the_instance; public static A getInstance() { if (the_instance == null) { the_instance = new A(); } return the_instance; }
此外,Android JVM何时可以清除此漏洞?
static字段会整体附加到Class实例,而实例又附加到ClassLoader加载了类的。the_instance整个ClassLoader回收时将被卸载。我90%确信这会在Android销毁该应用程序时发生(不是在它进入后台或暂停但完全关闭时发生)。
static
Class
ClassLoader
the_instance
90%
Android
因此,只要你的应用程序运行,就可以将其视为生存。Singleton是个好主意吗?人们有不同的看法。我个人认为,适当使用它会很好。我认为答案在Android上不会有太大变化。内存使用本身不是问题。如果你需要在内存中加载一堆东西,无论你是否将数据封装在Singleton中,这要么是问题,要么不是问题。