我应该在onResume()或onCreate()中获取类的实例吗?

时间:2015-12-11 16:00:36

标签: java android android-studio

我的直觉说要在onCreate()做一次,但我不确定每次都有一个新的实例是否有一些优势。这里最好的做法是什么?

3 个答案:

答案 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();
    }
}