【发布时间】:2017-08-16 13:43:06
【问题描述】:
我在Application.onCreate中启动了一个单例实例,这个实例有一个成员mApplicationContext,它是由getApplicationContext()发起的,这是mApplicationContext唯一被赋值的地方。从崩溃日志中,mApplicationContext 在某些情况下会变为 null,我的问题是在哪些情况下会发生这种情况?
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());
}
}
我在这里Android static object lifecycle 找到了类似的问题,但它没有回答我的问题。
【问题讨论】:
-
只是猜测,因为没有 MCVE:你有 ContentProviders 吗?它们在应用程序 onCreate() 之前被初始化
-
@CommonsWare 更新我的问题
-
@laalto 我看不到与 ContentProviders 有任何关系...答案是否定的
标签: android static android-context