Android: obtener contexto de un receptor de difusión onReceive () para enviar

82

Básicamente, quiero hacer una intención y pasarla a un servicio desde onReceive () de mi BroadcastReceiver.

Hasta ahora siempre usé View.getContext (), pero aquí estoy atascado. ¿Cómo exactamente puedo obtener el contexto para poder usarlo public Intent (Context packageContext, Class<?> cls)?

madu
fuente

Respuestas:

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

onReceivete da el contexto. ¿Qué más quieres?

Falmarri
fuente
8
Oh, en serio, no lo vi hasta que vi esto.
Blasanka
2

Bueno, la respuesta mencionada anteriormente no sirve de nada. Puede utilizar el contexto siempre que esté en onReceive. una vez que su código ha regresado de onReceive, el contexto ya no existe.

Entonces, su declaración de problema dice que desea iniciar el servicio usando este contexto en la creación de su intención y luego llamar a startService con este objeto de contexto. Eso no se puede hacer.

Lea esto sobre lo que se puede y no se puede hacer en el contexto de BroadcastReceiver.

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

Bibhay Ranjan
fuente
lo que dijiste no es cierto. puede iniciar un servicio desde BroadcastReceivers, pero no puede vincularse a ellos.
Bardya Momeni
0

En el BroadcastReceiver el

onReceive(Context context, Intent intent)

el método proporciona contexto

entonces

para iniciar el uso de la actividad

context.startActivity(intent);

y para iniciar el uso del servicio

context.startService(intent);
L.sagar
fuente