我的直觉说要在onCreate()
做一次,但我不确定每次都有一个新的实例是否有一些优势。这里最好的做法是什么?
答案 0 :(得分:3)
我们需要一些更多的背景来给你一个直接的答案。根据用户的操作,可能会多次调用这两种方法。
我建议将对象实例默认为null,并在onCreate()
和/或onResume()
内,只有在它为空时才初始化它。
if(objectInstance == null)
{
objectInstance = new MyObject();
}
答案 1 :(得分:1)
除非你有理由,否则你不应该重新实例化你已经拥有的对象!重新创建对象只会获得更多内存并为GC产生更多垃圾,这对效率不利!
所以在onCreate()
答案 2 :(得分:1)
就像Hojjat指出你不应该重新实例化对象一样,你必须再次创建对象(如果它们当前不存在),
if(myObject == null){
myObject = new ObjectFoo();
}
但如果您正在使用某项服务,则可能需要进行初始化:
class A extends Activity{
public ServiceClass mService = null; // service objecct
public void onCreate(){
mService = new ServiceClass();
}
public void onResume(){
mService.methodA();
}
}