Tôi đang thêm hai nút tác vụ vào thông báo của mình, khi tôi nhấp vào một trong hai nút đó, họ thực hiện hành động mong muốn nhưng thông báo vẫn còn trong ngăn thông báo của tôi. Tôi biết có thể xóa thông báo khỏi ngăn thông báo khi nút thao tác được nhấp vào vì đó là cách Gmail hoạt động. Nếu tôi nhấp vào thông báo chính, ứng dụng sẽ mở ứng dụng và xóa thông báo khỏi ngăn thông báo.Xóa thông báo khi addAction được gọi?
Dưới đây là một đoạn mã của tôi:
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 - Như zionpi chỉ ra tôi cần phải gọi notification.cancel(); để xóa thông báo khi nút addAction đã được nhấp. Tôi chỉ cần thêm phương thức này vào các lớp của tôi, nơi PendingIntent đang trỏ.
public static void CancelNotification(Context ctx, int notifyId) {
String s = Context.NOTIFICATION_SERVICE;
NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
mNM.cancel(notifyId);
}
Mã chưa hoàn thành. Thông báo vẫn còn đó? – Nizam
IMO Gmail sử dụng dịch vụ để giữ tham chiếu đến đối tượng thông báo và do đó, nó có thể xóa thông báo khi phù hợp với điều kiện nhất định. –