2010-11-07 2 views
67

Я в основном хочу сделать намерение и передать его службе из моего onReceive() BroadcastReceiver.Android - Получение контекста от приемника Broadcast onReceive() для отправки на

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

ответ

235

public abstract void onReceive (Context context, Intent intent)

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

+59

вау ... как пропустить то, что был там .. спасибо Falmarri. – madu

+37

классическая ситуация на лицевой стороне: D – egore911

+12

Может быть через 5 лет после этого было опубликовано, но все же абсолютно актуально !!! Я совершил ту же ошибку! Большое спасибо –

1

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

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

Прочтите это, что может и не может быть сделано в контексте BroadcastReceiver.

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

+0

то, что вы сказали, неверно. Вы можете запустить службу из BroadcastReceivers, но не можете привязываться к ним. –

Смежные вопросы