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


85

В основному я хочу зробити намір і передати його службі з мого BroadcastReceiver's onReceive ().

Поки що я завжди використовував View.getContext (), але тут я застряг. Як саме я можу отримати контекст, щоб я міг використовувати public Intent (Context packageContext, Class<?> cls)?

Відповіді:


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

onReceiveдає вам контекст. Що ще ти хочеш?


9
Ой серйозно, я не бачив цього, поки не побачу цього.
Бласанка

2

Ну, згадана вище відповідь не приносить ніякої користі. Ви можете використовувати контекст, поки перебуваєте в onReceive. як тільки ви повернете код з onReceive, контекст більше не існує.

Отже, у вашій заяві про проблему сказано, що ви хотіли запустити службу, використовуючи цей контекст у своєму намірі, а потім викликаючи startService з цим об’єктом контексту. Цього не можна зробити.

Прочитайте, що можна, а що не можна робити в контексті BroadcastReceiver.

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


те, що ви сказали, не відповідає дійсності. Ви можете запустити послугу з BroadcastReceivers, але не можете прив’язуватись до них.
Бардя Момені

0

У BroadcastReeiver

onReceive(Context context, Intent intent)

метод забезпечує контекст

так

щоб розпочати використання діяльності

context.startActivity(intent);

і розпочати користування послугою

context.startService(intent);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.