对象在扩展应用程序类中变为null的原因

时间:2017-02-22 18:34:23

标签: java android

在我的Android应用程序中,我扩展了Application类。我有一些元数据,我不想一次又一次地重新初始化。我在Application类中初始化它们然后使用它们。

private SampleSettings getSettings(){
     return sampleSettings;
}


 public class SampleApplication extends Application {

    public void onCreate(){
    super.onCreate();
    sampleSettings = getSettingsFromDB();
    }

}

这里getSettings在某些情况下使用applicationContext在应用程序中访问时返回null。

有时我得到这些属性的空指针异常。我已经看到应用程序进入后台时它会发生但不经常发生。

我的理解是,只要应用程序启动,这些值就不应该变得很长。

我错过了什么导致它们变为空? 感谢

1 个答案:

答案 0 :(得分:3)

你的过程不会永远存在。当您不在前台时your process may be terminated at any time by Android, to free up system RAM for other apps

自定义Application对象或任何static字段仅适用于缓存和其他正在进行的数据。您的应用需要能够从任何活动启动,根据需要对所有这些进行延迟初始化。