I have adapted yuku's answer with a non static direct context reference.
Create a class domain.company.pseudo.ApplicationName
which extends android.app.Application
.
package hypersoft.systems.android;
import android.app.Application;
public class Starbox extends Application {
public static Starbox instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
}
In this sample, my full application package name is hypersoft.systems.android.starbox
.
Now, modify your AndroidManifest.xml <application>
tag to have the attribute android:name="hypersoft.systems.android.Starbox"
, and be sure the Starbox.java
class file is located in the project component directory: android
rather than starbox
.
With all this done, you can now import hypersoft.systems.android.Starbox
, and in your code you can get the ApplicationContext
by calling Starbox.instance.getApplicationContext()
Successfully compiling with build tools 26 and api 26 (Android 8.0) with min sdk version 14 (4.0).