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);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.