Какой из этих способов является более правильным для получения экземпляра заявкиПравильный способ получить экземпляр заявки на андроид
Initialise статического поля в 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); } }
Я не понимаю одну вещь здесь. Если вы действительно хотите «Контекст» в «BroadcastReceiver», тогда 'onReceive (контекст контекста, ...)' уже предоставляет в качестве первого параметра. Используйте это. –
Я никогда не видел способ 2, но для меня это не имеет смысла, потому что если у вас есть контекст, вы можете сделать getApplicationContext –