I'm looking for ways to access application context in some classes that are used in background threads.
Besides that I'm avoiding to pass the context from my UI as a parameter to every single class.
With this in mind I'm doing something like this:
public class LojaApplication extends Application {
private static Context applicationContext;
@Override
public void onCreate() {
super.onCreate();
applicationContext = this;
}
public static Context getMyContext() {
return applicationContext;
}
}
And then using it:
public class WorkerClass {
private final Context applicationContext;
public WorkerClass() {
this.context = MyApplication.getMyContext();
}
public void doSomeStuffOnBackground(){
...
String string = applicationContext.getString(...)
...
}
}
I was worried that MyApplication.getMyContext() would return null if called inside a static block, but in my tests this works as well.
Is there a scenario that this might fail? Or problems that I'm failing to predict?
The point here is that I'm trying to avoid passing the context around as a parameter. I'm aware that is possible to access the Application Context via Context.getApplicationContext() that come from the Activity, but to do that I need to pass it as a parameter, what I'm trying to avoid.
PS.: I'm aware of the limitations of Application Context vs Activity Context.