Estoy tratando de enviar una Transmisión de un servicio a una Actividad. Puedo verificar que la transmisión se envía desde el servicio, pero la actividad no recoge nada.Transmisión de Android de Servicio a Actividad
Este es el código correspondiente servicio:
Intent i = new Intent(NEW_MESSAGE);
i.putExtra(FriendInfo.USERNAME, StringUtils.parseBareAddress(message.getFrom()));
i.putExtra(FriendInfo.MESSAGE, message.getBody());
i.putExtra("who", "1");
sendBroadcast(i);
Y el extremo receptor de la clase de actividad:
public class newMessage extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase(IMService.NEW_MESSAGE)){
Bundle extra = intent.getExtras();
String username = extra.getString(FriendInfo.USERNAME);
String message = extra.getString(FriendInfo.MESSAGE);
String who = extra.getString("who");
}
}
}
se define La BroadcastReceiver dentro de una actividad. Estoy registrando el receptor en el método onCreate de la Actividad, no en el archivo Manifiesto.
Estoy perplejo de por qué no rec. cualquier cosa.
¿Alguna idea?
EDITAR
Registro tiene lugar como sigue:
registerReceiver(messageReceiver, new IntentFilter(IMService.NEW_MESSAGE));
Donde "messageReceiver" se define como
private newMessage messageReceiver = new newMessage();
IMService.NEW_MESSAGE es simplemente una cadena = "newMessage"
¿cómo se registra su receptor? –
¿dónde y cómo declaras el IntentFilter en tu actividad? – Franco
IntentFilter no debería involucrarse aquí para la actividad, el receptor es lo que funciona aquí. –