I initiate a singleton instance in Application.onCreate, this instance has a member mApplicationContext
which is initiated by getApplicationContext()
, and this is the only place mApplicationContext be assigned value. From the crash log, mApplicationContext
becomes null in certain scenarios, my question is in which this would happen?
public class ClassicSingleton {
private static ClassicSingleton instance = null;
private Context mApplicationContext = null;
private ClassicSingleton() {
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
public void initiate(Context context){
this.mApplicationContext = context;
}
}
public class MyApplication extends Application{
@Override
public void onCreate()
{
super.onCreate();
ClassicSingleton.getInstance().initiate(getApplicationContext());
}
}
I find similar question here Android static object lifecycle, but it didn't answer my question.