【发布时间】:2013-04-14 03:22:14
【问题描述】:
我的应用程序中有一个singleton 类,它的定义有点像:
public class SingletonTest {
private SingletonTest() {}
private static SingletonTest instance = new SingletonTest();
public static SingletonTest getInstance() {
return instance;
}
}
当我退出我的应用程序并再次打开时,instance 没有再次初始化,因为前一个没有被破坏并且仍在 JVM 中。但我想要的是每次进入我的应用程序时初始化静态字段。那么,我应该在onDestroy() 方法中做什么呢?非常感谢!
【问题讨论】:
-
创建
SinggletonTest.init()并从应用程序ActivityonStart()或类似的覆盖方法中调用它。 -
非常不鼓励单身人士。如果你想在你的应用程序中使用一个类的单个实例,我推荐依赖注入,并且当你绑定你的类时告诉它作为单例绑定。这摆脱了静态引用,并为您提供所需的行为。
-
@ChristopherPerry 虽然我不是过度使用单身人士的忠实拥护者,但要说他们非常不鼓励这样做有点牵强。 Android 团队中至少一位知名开发人员建议使用它们:stackoverflow.com/questions/3826905/…
-
@kabuko,我不同意 Dianne Hackborn,与您链接中的答案相同,原因也相同。
-
@ChristopherPerry 感谢您的建议!你能推荐一个适合
android项目并且流行的dependency injection框架吗?
标签: android static garbage-collection singleton destroy