This might be a simple question but I just wanted to make sure I am right.
In my android application I have a constructor that uses:
activity.getApplicationContext()
The activity is passed into the constructor as a parameter.
The problem is that I am calling this class from a Service. If I make a second constructor which accepts the Service as a parameter and uses service.getApplicationContext
? Will I get the same application context?
The easiest way to get the application context is:
Create a class App
that extends android.app.Application
public class App extends Application {
public static Context context;
@Override public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
Modify your AndroidManifest.xml
's <application>
tag to have the attribute android:name="your.package.name.App"
.
Any time you need the application context, just get it from App.context
.
Application
is always initialized first whether your process runs, whether it's an activity, a service, or something else. You will always have access to the application context.