Android - Получение контекста от широковещательного приемника onReceive () для отправки

85

Я в основном хочу выразить намерение и передать его службе из onReceive () моего BroadcastReceiver.

До сих пор я всегда использовал View.getContext (), но здесь я застрял. Как именно я могу получить контекст, чтобы я мог его использовать public Intent (Context packageContext, Class<?> cls)?

Маду
источник

Ответы:

304
public abstract void onReceive(Context context, Intent intent)

onReceiveдает вам контекст. Что вы еще хотите?

Фалмарри
источник
9
О, серьезно, я не видел этого, пока не увидел это.
Blasanka
2

Что ж, ответ, упомянутый выше, бесполезен. Вы можете использовать контекст, пока находитесь в onReceive. как только вы вернули код из onReceive, контекст больше не существует.

Итак, в вашем заявлении о проблеме говорится, что вы хотите запустить службу, используя этот контекст в своем намерении, а затем вызвать startService с этим объектом контекста. Это невозможно.

Прочтите, что можно и чего нельзя делать в контексте BroadcastReceiver.

http://developer.android.com/reference/android/content/BroadcastReceiver.html

Бибхай Ранджан
источник
то, что вы сказали, неправда. вы можете запустить службу из BroadcastReceivers, но не можете привязаться к ним.
Бардя Момени
0

В BroadcastReceiver

onReceive(Context context, Intent intent)

метод предоставляет контекст

так

для начала деятельности использовать

context.startActivity(intent);

и начать пользоваться сервисом

context.startService(intent);
L.sagar
источник