Ich habe meinen eigenen Push-Benachrichtigungsserver eingerichtet, um Benachrichtigungen an Android-Geräte zu senden.Handle sukzessive fcm Push-Benachrichtigung
Ich habe die Benachrichtigung bearbeitet, also klicke immer auf meine benutzerdefinierte Aktivität, egal welche App im Hintergrund oder Vordergrund war.
Der Arbeitsteil: Beim Senden von zwei Benachrichtigungen getrennt, das bedeutet, wenn die erste Meldung empfangen wird i darauf klicken, um die Aktivität gestartet wird, das ist ok. Ich sende erneut eine Benachrichtigung, also auch wenn ich darauf klicke alles geht gut und die Aktivität ist relooked.Perfect!
Der NICHT-Arbeitsteil: Wenn zwei aufeinanderfolgende Benachrichtigungen sendet das Problem auftritt. Wenn zwei Benachrichtigungen empfangen werden. Ich öffne die erste, die Aktivität wird gestartet, aber wenn ich auf die zweite klicke, passiert nichts !!
Also ich denke, es könnte eine Lösung bei der Änderung der Absicht FLAG oder Pending Intent sein.
Ich habe nach Lösungen gesucht, aber alle waren über die Handhabung der Benachrichtigung, wenn App im Vordergrund oder Hintergrund ist, was nicht in meinem Fall ist.
Das ist mein Arbeitscode:
Intent i = new Intent(this, News_description.class);
i.putExtra("title", title);
i.putExtra("message", message);
i.putExtra("image", image);
i.putExtra("time", time);
i.putExtra("date", date);
i.putExtra("click_action", click_action);
i.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, i,PendingIntent.FLAG_ONE_SHOT
);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setVibrate(new long[]{status, status})
.setContentTitle(getString(R.string.app_name))
.setContentText(title)
.setStyle(new NotificationCompat.BigTextStyle().bigText(title))
.setSmallIcon(R.mipmap.ahed_me)
.setContentIntent(pendingIntent);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
int id = (int) System.currentTimeMillis();
manager.notify(id, builder.build());
} catch (Exception e) {
e.printStackTrace();
}
ich weitere Informationen zur Verfügung stellen kann.
Problem .... –
Versuchen Sie, was ich getan habe, und es wird nicht mit Ihnen arbeiten. Versuchen Sie, zwei aufeinander folgende Benachrichtigungen zu senden und dann eins nach dem anderen zu öffnen. Sie werden feststellen, dass die zweite Benachrichtigung nicht funktioniert. –
Ich habe Ihr Problem gefunden: PadingIntent verwendet Folgendes: PendingIntent pendingIntent = PendingIntent.getActivity (getApplicationContext(), 0, i, 0); –