Implementé notificaciones push de Android y puedo manejarlo cuando la aplicación se está ejecutando extendiéndose FirebaseMessagingService
con este método:
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
...
}
Pero lo que realmente necesito es obtener los datos de notificación en mi actividad actual para actualizar algunos campos para que el usuario los vea en tiempo real. Pero no puedo encontrar la manera de hacer esto. ¿Alguien podría ayudarme?
Cree un receptor de transmisión local
Cuando reciba una notificación en FirebaseMessagingService, enviará los datos a la actividad que necesita con un LocalBroadcastReceiver. Es fácil y seguro.
En tu FirebaseMessagingService
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
//Take the data from message received
String myData = remoteMessage.get("MyDataKey");
//Send data through a local broadcast receiver
Intent intent = new Intent("IntentFilterAction");
intent.putExtra("MyDataKey", myData);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
En actividad onCreate
//Create BroadcastReceiver
BroadcastReceiver broadcastReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
//Get data from intent
String mydata = intent.getExtras
}
};
IntentFilter intentFilter = new IntentFilter("IntentFilterAction");
LocalBroadcastManager.getInstance(getContext()).registerReceiver(broadcastReceiver, intentFilter);
En actividad en Destroy
//Unregister BroadcastReceiver
LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(broadcastReceiver);
Espero eso ayude :)
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras