2017-07-11 4 views
-2

Ich habe Firebase implementiert, aber leider funktionieren Benachrichtigungen nur, wenn App im Vordergrund oder Hintergrund ist, aber keine Benachrichtigung erhalten, wenn App geschlossen wird. Ich habe versucht online zu surfen, konnte aber keine Ergebnisse erzielen. Gibt es eine Möglichkeit, die App auch nach dem Schließen noch im Hintergrund zu halten? Wenn ja, denke ich, dass dies hilft, Benachrichtigungen zu erhalten. Alle hilfreichen Vorschläge werden unterhalten. DankeFCM Push-Benachrichtigung funktioniert in Vordergrund und Hintergrund, aber funktioniert nicht, wenn App geschlossen ist

+0

Zeigen Sie die Codes an, die Sie implementiert haben. – james

Antwort

0

Eine Sache, die ich tue, ist, dass ich nicht auf der Benachrichtigungsantwort vertraue, übergebe ich eher das Datenobjekt und mache eine benutzerdefinierte Benachrichtigung selbst.

Hier ist der Code, den Sie helfen könnten, wie wir die Daten selbst Objekt zugreifen können, wenn App auch offen ist, wie geschlossen:

Map<String, String> dataMap = remoteMessage.getData(); 
String notif = dataMap.get("title"); 

dann verwende ich diese Funktion eine Benachrichtigung

private void notificationManager(Context context, String message) { 

    try { 
     long when = System.currentTimeMillis(); 

     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

     Log.v("message", "," + message); 

     Intent notificationIntent = new Intent(context, SplashActivity.class); 


     notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 

     NotificationCompat.Builder builder = new NotificationCompat.Builder(context); 
     builder.setAutoCancel(true); 
     builder.setContentTitle(context.getString(R.string.app_name)); 
     builder.setStyle(new NotificationCompat.BigTextStyle().bigText(message)); 
     builder.setContentText(message); 
     builder.setTicker(message); 
     builder.setLights(Color.GREEN, 500, 500); 
     builder.setWhen(when); 
     builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); 
     builder.setSmallIcon(R.mipmap.ic_launcher); 
     builder.setContentIntent(intent); 


     Notification notification = builder.build(); 
     notification.ledARGB = 0xFFff0000; 
     notification.flags = Notification.FLAG_SHOW_LIGHTS; 
     notification.ledOnMS = 100; 
     notification.ledOffMS = 100; 
     notificationManager.notify(1, notification); 

     PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); 
     wl.acquire(15000); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
machen

Hoffe, das hilft.

0

FCM hat zwei Messaging-Dienste

  1. Display-Messaging
  2. Daten Messaging

Wahrscheinlich Display Messaging Sie verwenden. Sie sollten Data Messaging statt Display Messaging verwenden. Die Nachrichtenanzeige funktioniert nicht, wenn die App geschlossen wird.

Verwandte Themen