论坛上的一个答案说:
如果可能,最好在具有实例引用的 Application 类的子类中创建私有变量,而不是在单例类本身中创建私有静态变量。
我很困惑,我无法理解其中的区别,请显示根据此建议完成所有操作的代码以及变量在类本身中的代码。
好吧,类本身的变量如下所示:
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance(){
if (null == instance){
instance = new Singleton();
}
return instance;
}
}
我不明白子类中的变量是什么Application样的......相反,因为我不明白如果遵循这个建议会有什么好处。
这个问题的公认答案是我的问题 Singleton in Android - evil?
Application 是存储应用程序全局状态的基类。您可以像这样使用它(您需要将 android:name=".MyApplication" 添加到 AndroidManifest.xml 文件的部分):
但是,Google 建议使用 Singleton:
https://developer.android.com/reference/android/app/Application