Notificaciones de Firebase cuando la aplicación está cerrada

He implementado la notificación de Firebase en mi aplicación de Android. Cuando mi aplicación se ejecuta, la notificación se muestra con mi diseño personalizado, pero cuando la aplicación no se está ejecutando, la notificación se muestra con el diseño predeterminado. ¿Cómo puedo cambiar el diseño de la notificación a mi diseño cuando la aplicación no se está ejecutando. Además, almaceno las preferencias compartidas para permitir que el usuario cambie las notificaciones. Pero cuando la aplicación no se está ejecutando la notificación se muestra de todos modos. ¿Cómo lograrlo?

@Override public void onMessageReceived(RemoteMessage remoteMessage) { if(SettingsFragment.getReceiceNotification()){ //if user wants to receive notification NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.push_notification_layout); remoteViews.setImageViewResource(R.id.push_notif_icon,R.mipmap.ic_bird_black); Intent intent = new Intent(this,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this); notificationBuilder.setContent(remoteViews); notificationBuilder.setContentTitle("Radyo Türkkuşu"); notificationBuilder.setContentText(remoteMessage.getNotification().getBody()); notificationBuilder.setAutoCancel(true); notificationBuilder.setSmallIcon(R.mipmap.ic_launcher); notificationBuilder.setContentIntent(pendingIntent); remoteViews.setTextViewText(R.id.push_title, "Radyo Türkkuşu"); remoteViews.setTextViewText(R.id.push_context, remoteMessage.getNotification().getBody()); //notificationBuilder.setLights (ContextCompat.getColor(MainActivity.context, R.color.pushColor), 5000, 5000); notificationManager.notify(0,notificationBuilder.build()); } } 

El problema es que lo utilice con la bandeja de notificaciones.

Ver este enlace

Mensajes con la carga de notificación y de datos, tanto de fondo como de primer plano. En este caso, la notificación se entrega a la bandeja del sistema del dispositivo y la carga útil de datos se entrega en los extras de la intención de la Actividad del lanzador.

Si utiliza {data:"something"}(data-message) con {notification:"something"}(display-message) mientras su aplicación está en segundo plano, la carga útil de datos se entregará a los extras de la intención pero no al onMessageReceived() Método.Supongo que implementar su código para mostrar la notificación, por lo que cuando su aplicación está en primer plano onMessageReceived() es un disparador y mostrar la notificación de deseo que desea, pero cuando no es onMessageReceived() Con la carga de notificación. Sólo tienes que eliminar {notification:"something"}(display-message/notification tray) desde tu código de servidor para asegurar siempre onMessageReceived() .

Para cualquier persona mención de keep onMessageReceived() siempre desencadenará no importa si no es primer plano o fondo por favor visite este enlace

Hay dos tipos de mensajes FCM

  1. Mensaje de notificación
  2. Mensaje de datos

Los mensajes que se envían desde la consola de Firebase son mensajes de notificación . Para obtener el mensaje en onMessageReceived () use Data Message . Utilizar
{"A": "bk3RNwTe3H0: CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1 …", "data": {"Nick": "Mario", "body": "great match!", "Room": "PortugalVSDenmark" Para enviar Notificación.

Referencia https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

  • La aplicación de Android no recibe notificación de Firebase cuando la aplicación se detiene desde la bandeja de tareas múltiples
  • La aplicación de Android no recibe la notificación de FCM cuando se cierra
  • Algunos dispositivos no reciben notificaciones de FCM
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.