通知に2つのアクションボタンを追加していますが、いずれかのボタンをクリックすると通知が通知帳に残りますが、希望の動作を実行します。 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はサービスを使用して通知オブジェクトへの参照を保持するため、特定の条件に一致すると通知を削除できます。 –