Я адаптировал ответ Юку с нестатической прямой контекстной ссылкой.
Создать класс domain.company.pseudo.ApplicationName
, который расширяет 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;
}
}
В этом примере мое полное имя пакета приложения: hypersoft.systems.android.starbox
.
Теперь измените тег AndroidManifest.xml <application>
, чтобы он имел атрибут android:name="hypersoft.systems.android.Starbox"
, и убедитесь, что файл класса Starbox.java
находится в каталоге компонента проекта: starbox
.
После всего этого вы можете import hypersoft.systems.android.Starbox
, а в своем коде вы можете получить ApplicationContext
, позвонив по номеру Starbox.instance.getApplicationContext()
Успешная компиляция с помощью инструментов сборки 26 и API 26 (Android 8.0) с минимальной версией SDK 14 (4.0).