- Инициализировать статическое поле в Application.onCreate() и предоставить статический доступ к этому
Код: Выделить всё
public class MyApplication extends Application { private static MyApplication sInstance; @Override public void onCreate() { super.onCreate(); sInstance = this; } public static MyApplication getInstance() { return MyApplication.sInstance; } } public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = MyApplication.getInstance(); } } - Создайте статический метод, который принимает контекст в качестве параметра, и приведите этот контекст к MyApplication
Код: Выделить всё
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); } public static MyApplication getInstance(Context context) { return ((MyApplication) context.getApplicationContext()); } } public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = MyApplication.getInstance(context); } } - Делайте как в примере 2, но без статического доступа к MyApplication
Код: Выделить всё
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = (MyApplication) context.getApplicationContext(); } }
Подробнее здесь: https://stackoverflow.com/questions/357 ... in-android