Ashwani K
Ashwani K

Reputation: 7990

Reasons for objects becoming null in Extended Application class

In my android application, I have extended Application class. I am having some meta data which I do not want to re-initialize again and again. I initialize them in Application class and then use them.

private SampleSettings getSettings(){
     return sampleSettings;
}


 public class SampleApplication extends Application {

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

}

Here getSettings returns null in some cases when accessed in application using applicationContext.

Sometime I am getting null pointer exception for such properties. I have seen when the app goes to background it occurs but not frequently.

My understanding is that those values should not become as long as application is started.

What am I missing which is causing them to become null? Thanks

Upvotes: 0

Views: 116

Answers (1)

CommonsWare
CommonsWare

Reputation: 1006859

Your process does not live forever. When you are not in the foreground, your process may be terminated at any time by Android, to free up system RAM for other apps.

A custom Application object, or any static fields, are only for caching and other in-flight data. Your app needs to be able to start up, from any activity, lazy-initializing all of that as needed.

Upvotes: 3

Related Questions