Android - Getting context from a Broadcast receiver onReceive() to send to

AndroidAndroid IntentServiceBroadcastreceiverAndroid Context

Android Problem Overview


I basically want to make an intent and pass it to a service from my BroadcastReceiver's onReceive().

So far I always used View.getContext(), but here, I'm stuck. How exactly can I get the context so I can use public Intent (Context packageContext, Class<?> cls)?

Android Solutions


Solution 1 - Android

public abstract void onReceive(Context context, Intent intent)

onReceive gives you the context. What more do you want?

Solution 2 - Android

Well the Answer mentioned above is not of any use. You can use the context as long as you are in onReceive. once you code has returned from onReceive, the context is no longer existing.

So your problem statement say you wanted to start the service using this context in your intent creation and then calling startService with this context object. That cannot be done.

Read this what can and cannot be done in BroadcastReceiver context.

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

Solution 3 - Android

In the BroadcastReceiver the

onReceive(Context context, Intent intent)

method provides context

so

to start activity use

context.startActivity(intent);

and to start service use

context.startService(intent);

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmaduView Question on Stackoverflow
Solution 1 - AndroidFalmarriView Answer on Stackoverflow
Solution 2 - AndroidBibhay RanjanView Answer on Stackoverflow
Solution 3 - AndroidL.sagarView Answer on Stackoverflow