Dodaję dwa przyciski akcji do mojego powiadomienia, po kliknięciu jednego z nich wykonują żądaną akcję, ale powiadomienie pozostaje w mojej szufladzie powiadomień. Wiem, że można usunąć powiadomienie z szuflady powiadomień po kliknięciu przycisku akcji, ponieważ tak funkcjonuje Gmail. Jeśli kliknę główne powiadomienie, otworzy się aplikacja i usunie powiadomienie z szuflady powiadomień.Usunąć powiadomienie, gdy wywołano funkcję addAction?
Oto fragment mojego kodu:
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);
Edit - Jak zionpi wskazał, że muszę zadzwonić notification.cancel(); aby usunąć powiadomienie po kliknięciu przycisku AddAction. Po prostu dodałem tę metodę do moich zajęć, na które wskazywał PendingIntent.
public static void CancelNotification(Context ctx, int notifyId) {
String s = Context.NOTIFICATION_SERVICE;
NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
mNM.cancel(notifyId);
}
Kod jest niekompletny. Powiadomienie nadal tam jest? – Nizam
Witryna IMO Gmail używa usługi do przechowywania odwołania do obiektu powiadomienia, dzięki czemu może usunąć powiadomienie po dopasowaniu określonego warunku. –