2

Это мой кодFirebase Уведомление не отображается Когда Application Run

private void showNotification(String message) { 

    NotificationCompat.BigTextStyle stil = new NotificationCompat.BigTextStyle(); 
    stil.setBigContentTitle("Başıl"); 
    stil.bigText(message); 
    Intent i=new Intent(this,Bilgi.class); 
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent pendingIntent=PendingIntent.getActivity(this,0,i,PendingIntent.FLAG_UPDATE_CURRENT); 
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
    builder.setAutoCancel(true); 
    builder.setSmallIcon(R.mipmap.ic_launcher); 
    builder.setTicker("selam dost.mesaj geldi"); 
    builder.setDefaults(Notification.DEFAULT_ALL); 
    builder.setContentIntent(pendingIntent); 
    builder.setContentTitle("Bildirim"); 
    builder.setContentText(message); 
    builder.setStyle(stil); 
    NotificationManager notificationManager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    notificationManager.notify(0,builder.build()); 



} 

enter image description here

Когда я отправить уведомление (если приложение работает (левая сторона изображения)) мой оповещать не показывает. когда приложение работает в фоновом режиме, мое уведомление показывает. Как я могу решить эту проблему ? большое вам спасибо за вашу помощь.

ответ

6

Как указано в official documentation, уведомления автоматически добавляются в системный лоток, если приложение работает в фоновом режиме. Если приложение работает на переднем плане, уведомление будет отправлено на метод onMessageReceived вашей службы.

Итак, подведем итог, что будет сделано с Firebase уведомления на основе приложения состояния:

  • переднего плана: onMessageReceived будет обрабатывать уведомления
  • фон: Firebase будет обрабатывать уведомления и положить его в системный лоток для вас
+0

так что изменится на моем коде? можешь мне помочь ? Спасибо. –

+0

Где код для показа вызванного уведомления? В 'onMessageReceived'? Если это так, вы подтвердили, что сообщение 'String' не пустое. – TR4Android

2

По вашему методу onMessageReceived вам необходимо получить уведомление и передать его методу showNotification(String message).

так:

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    String message = remoteMessage.getNotification().getBody(); 
    showNotification(message); 
} 

Таким образом, он будет показывать сообщение, которое вы установили при отправке firebase уведомления.

Смежные вопросы