Llamar a una Activity desde un BroadcastReceiver.

412 views
Skip to first unread message

xavixiw

unread,
May 24, 2011, 7:02:12 PM5/24/11
to desarrolladores-android
Hola,
Estoy intentado llamar a una Activity desde una clase que extiende de
BroadcastReceiver y no hay manera.
He probado varias cosas que he encontrado por la web pero ninguna me
funciona.

public class SmsRecibidor extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

En este método cojo el texto del mensaje y lo saco por un
Toast. El problema viene cuando quiero llamar a otra Activity.

He intentado con esto ----> context.startActivity(new
Intent(context,
Prueba.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
Y con esto ----> context.startActivity(new
Intent(context, Prueba.class));
Y con mas cosas.

¡¡¡ No funciona !!! Me fuerza el cierre de la aplicación.

}
}

¿¿Alguna idea??

Muchas Gracias..

jesus rodriguez

unread,
May 24, 2011, 7:19:44 PM5/24/11
to desarrollad...@googlegroups.com
Ya has intentado con Intent inte = new Intent (getBaseContetx(),clase.class);
o Intent inte = new Intent (this, clase.class);

startActivity (inte);


--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.


Xavi X

unread,
May 24, 2011, 7:26:08 PM5/24/11
to desarrollad...@googlegroups.com
Gracias por responder Jesús,

pero el método getBaseContext no lo reconoce, supongo que porque la clase no extiende de Activity.
El otro          --->  Intent inte = new Intent (this, Prueba.class);
tiene que ser --->  Intent inte = new Intent (context, Prueba.class);
por el mismo motivo, y tambien me fuerza el cierre.

Ya no se que probar...... xd

jesus rodriguez

unread,
May 24, 2011, 8:46:38 PM5/24/11
to desarrollad...@googlegroups.com
Otra forma que pongo es esta Intent inte = new Intent().setClass(this, clase.class);

Si pones las actividades dentro del manifest????

jesus rodriguez

unread,
May 24, 2011, 8:51:26 PM5/24/11
to desarrollad...@googlegroups.com
En el método que usas, puedes mandar el intent, ya que lo tienes declarado en le metodo

public class SmsRecibidor extends BroadcastReceiver {

       @Override
       public void onReceive(Context context, Intent intent) {

intent = new Intent( this, clase.class). setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
startActivity (intent);
       }
}


En tu código estoy viendo que tienes unos paréntesis de mas, checa eso.

José Luis Corcuera Bárcena

unread,
May 26, 2011, 9:03:47 AM5/26/11
to desarrollad...@googlegroups.com
Hola, en caso no te haya salido, dale una chekeada a esto: http://groups.google.com/group/android-developers/browse_thread/thread/639e8046f768c42f

Saludos.

2011/5/24 xavixiw <xavi....@gmail.com>

Xavi X

unread,
May 29, 2011, 1:52:03 PM5/29/11
to desarrollad...@googlegroups.com
Muchas gracias de nuevo Jesús. Después de una pausa de unos días hoy me puesto de nuevo con el problema que tenia. 

Al final me he dado cuenta que en el manifest tenia bien declarada la clase pero sin los paquetes detrás con lo que no me la encontraba. Vaya fallo!!

Un saludo!

jesus rodriguez

unread,
May 29, 2011, 4:59:53 PM5/29/11
to desarrollad...@googlegroups.com
Denada, espero te vaya muy bien con tu app.
Reply all
Reply to author
Forward
0 new messages