Ich habe die folgende Benachrichtigungslogik innerhalb einer Klasse, die GcmListenerService erweitert, und wird aufgerufen, wenn eine Benachrichtigung eintrifft. Wenn Sie darauf klicken, gelangen Sie über die App zu MainActivity, wo die Benachrichtigung ordnungsgemäß angezeigt wird.Stapeln von Benachrichtigungen von GCM funktioniert nicht mit setGroup
public static void mostrarAvisoBarraEstado(Context context, String alerts)
{
Intent notificationIntent = new Intent(context.getApplicationContext(), MainActivity.class);
notificationIntent.putExtra("alerts", alerts);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, new Random().nextInt(),
notificationIntent, 0);
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle(context.getString(R.string.app_name))
.setContentText("Alert received")
.setSmallIcon(R.drawable.nubeazul)
.setOnlyAlertOnce(true)
.setContentIntent(pendingIntent)
.setWhen(System.currentTimeMillis())
.setGroup(GRUPO_ALERTAS)
.setGroupSummary(true)
.setAutoCancel(true)
.build();
//notificationManager.notify(0, notification);
notificationManager.notify (new Random().nextInt(), notification);
}
So, jetzt wird jeder separat angezeigt, und wenn sie aufbauen, ist das Ergebnis ziemlich hässlich mit all der Benachrichtigungsleiste voll von kleinen Icons. Kannst du mir helfen, eine elegante Lösung zu finden, seit ich Android neu kenne? Danke vielmals!
NEW heute Viehfutter beigemengt!
Wenn ich die Zufalls aus benachrichtigen nehmen, so etwas wie notificationManager.notify(0, notification);
verlassen, werde ich nur eine Benachrichtigung erhalten, aber sonst nichts, dann, wenn es startet MainActivity (seine onResume() -Methode) wird es nur eine Meldung angezeigt werden und alle "Aufgestapelte" werden einfach verworfen, wenn auf die eine Benachrichtigung geklickt wird. Was ich erreichen möchte ist, dass während ich eine saubere Anzeige halte, dh: eine Gruppenbenachrichtigung für alle GCM, wenn ich auf die Gruppe klicke, werde ich jede Benachrichtigung durch die Alerts.class angezeigt bekommen (etwas wie das Durchlaufen der Benachrichtigungen, und Starten der Aktivität Alerts für jeden.
@Override
protected void onResume()
{
super.onResume();
if (getIntent().hasExtra("alerts"))
{
Bundle extras = getIntent().getExtras();
Intent intent = new Intent(this, Alerts.class);
intent.putExtra("alerts" , extras.getString("alerts"));
startActivity(intent);
getIntent().removeExtra("alerts");
}
}
Dann wird die Alerts Klasse wird schön die Warnung angezeigt werden, die es der Fall ist, sondern eine pro-Benachrichtigung.
Können Sie einige Screenshots liefern, was Sie bekommen? Stauen sie sich einfach auf? –
Ja, das Symbol der App wird nur für jede Benachrichtigung wiederholt, es ist wie für jede Nachricht, die Sie in Google Mail erhalten, erhalten Sie ein separates Google Mail-Symbol und Benachrichtigung – Javi
Ich werde Ihren Code ausprobieren und Sie wissen lassen, was Ich finde heraus. :) –