我在通知中添加了两个操作按钮,当我点击其中的任意一个时,他们执行所需的操作,但通知仍保留在通知抽屉中。我知道当点击操作按钮时,可以从通知抽屉中删除通知,因为这是Gmail的功能。如果我点击主要通知,它会打开应用程序并从通知抽屉中删除通知。当addAction被调用时移除通知?
这里是我的代码片段:
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);
编辑 - 作为zionpi指出我需要调用notification.cancel();一旦addAction按钮被点击,删除通知。我只是将此方法添加到PendingIntent指向的类中。
public static void CancelNotification(Context ctx, int notifyId) {
String s = Context.NOTIFICATION_SERVICE;
NotificationManager mNM = (NotificationManager) ctx.getSystemService(s);
mNM.cancel(notifyId);
}
代码不完整。通知仍然存在? – Nizam
IMO Gmail使用服务来保存对通知对象的引用,因此它可以在匹配某些条件时删除通知。 –