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)?

Respuestas:


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

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


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


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);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.