Ich füge zwei Aktionsschaltflächen zu meiner Benachrichtigung hinzu, wenn ich auf einen von ihnen klicke, führen sie die gewünschte Aktion aus, aber die Benachrichtigung verbleibt in meinem Benachrichtigungsfach. Ich weiß, dass es möglich ist, die Benachrichtigung aus der Benachrichtigungsleiste zu entfernen, wenn auf eine Aktionsschaltfläche geklickt wird. So funktioniert Google Mail. Wenn ich auf die Hauptbenachrichtigung klicke, wird die App geöffnet und die Benachrichtigung aus dem Benachrichtigungsfach entfernt.Benachrichtigung entfernen, wenn addAction aufgerufen wird?
Hier ist ein Ausschnitt aus meinem Code:
Intent completeIntent = new Intent(getApplicationContext(), MarkComplete.class);
completeIntent.putExtra("rowid", inrowid);
completeIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
PendingIntent markCompleteIntent = PendingIntent.getActivity(getApplicationContext(), inrow, completeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Title")
.setContentText("text")
.setContentIntent(notificationReleaseIntent)
.setPriority(Notification.PRIORITY_HIGH)
.setAutoCancel(true)
.addAction(R.drawable.complete, "Mark Complete", markCompleteIntent);
Bearbeiten - Wie zionpi wies darauf hin, ich notification.cancel nennen benötigt(); um die Benachrichtigung zu entfernen, nachdem auf die Schaltfläche AddAction geklickt wurde. Ich habe diese Methode einfach zu meinen Klassen hinzugefügt, auf die der PendingIntent zeigte.
public static void CancelNotification(Context ctx, int notifyId) {
String s = Context.NOTIFICATION_SERVICE;
NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
mNM.cancel(notifyId);
}
Code ist unvollständig. Benachrichtigung bleibt noch dort? – Nizam
IMO Google Mail verwendet den Service, um den Verweis auf das Benachrichtigungsobjekt zu halten, und kann daher die Benachrichtigung entfernen, wenn bestimmte Bedingungen erfüllt sind. –