【发布时间】:2017-09-20 14:56:03
【问题描述】:
我正在开发一个 android 应用程序,其中有一个单例类,如下所示:
public class ClassName {
private static ClassName mobject;
public List<Question> mquestionslist;
public ClassName() {
mquestionslist=new ArrayList<Question>();
}
public static ClassName getInstance() {
if (mobject == null) {
mobject = new ClassName();
}
return mobject;
}
public void LoadQuestions()
{
//do somthing
}
}
现在每次我想使用这个对象时,我只需从其他活动或片段中调用 ClassName.getInstance().any_method_name() 并直接使用它。 我从不为此类对象创建任何本地引用,例如:
ClassName ref=ClassName.getInstance();
ref.any_method_name();
=>请告诉我这个对象在垃圾收集器从内存中删除之前可以存活多长时间,这是一个好习惯。 (无法从其他地方得到答案)
【问题讨论】:
-
直到您的应用程序保留在内存中。
-
不要对单例使用延迟初始化。类本身是延迟加载和初始化的。因此,只需将单例引用声明为
final并在其声明中对其进行初始化。