在我的Android应用程序中,我扩展了Application类。我有一些元数据,我不想一次又一次地重新初始化。我在Application类中初始化它们然后使用它们。
private SampleSettings getSettings(){
return sampleSettings;
}
public class SampleApplication extends Application {
public void onCreate(){
super.onCreate();
sampleSettings = getSettingsFromDB();
}
}
这里getSettings在某些情况下使用applicationContext在应用程序中访问时返回null。
有时我得到这些属性的空指针异常。我已经看到应用程序进入后台时它会发生但不经常发生。
我的理解是,只要应用程序启动,这些值就不应该变得很长。
我错过了什么导致它们变为空? 感谢
答案 0 :(得分:3)
你的过程不会永远存在。当您不在前台时your process may be terminated at any time by Android, to free up system RAM for other apps。
自定义Application
对象或任何static
字段仅适用于缓存和其他正在进行的数据。您的应用需要能够从任何活动启动,根据需要对所有这些进行延迟初始化。