Какой из этих способов более подходит для получения экземпляра приложения [list] [*]Инициализировать статическое поле в Application.onCreate() и предоставить статический доступ к этому [code] 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(); } } [/code]
[*]Создайте статический метод, который принимает контекст в качестве параметра, и приведите этот контекст к MyApplication [code] public class MyApplication extends Application {
@Override public void onCreate() { super.onCreate(); }
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = MyApplication.getInstance(context); } } [/code]
[*]Делайте как в примере 2, но без статического доступа к MyApplication [code] public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyApplication application = (MyApplication) context.getApplicationContext(); } } [/code]