ここでは他のすべてのAUTO-CANCEL-not-workingの質問を見てきましたが、それらはすべて私がしていない間違いを含んでいるようです。私は両方のAndroid:アプリがバックグラウンドで実行されているときに通知にAUTO-CANCELを使用する
builder.setAutoCancel(true);
と
Notification notif = builder.build();
notif.flags |= Notification.FLAG_AUTO_CANCEL;
どちらの作品を試してみました。
私の最小APIは8であるため、NotificationCompatを使用しています。ここに私の完全なコードがあります。この特定の通知では、ユーザーは何もする必要はないので、私は意図を呼んでいません。
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(getString(R.string.app_name) + ": my title");
builder.setContentText(message);
builder.setSmallIcon(R.drawable.notification_icon);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.prog_icon);
builder.setLargeIcon(bitmap);
builder.setAutoCancel(true); // dismiss notification on user click
NotificationManager notiManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notiManager.notify(MY_NOTI_MANAGER_ID, builder.build());
通知は完全に表示されます。あなたはそれをクリアするためにスワイプすることができます。しかし、単にそれをタップしても、通知は却下されません。それだけで点灯し、そこにとどまる。
私のコードと他の人との間にいくつかの違いがあります。ここに掲載されています: 1)私はNotificationCompatを使用しています(違いはありませんが、これまで聞いたことがあります)。 2)通知が簡単なので、私は意図を添付しません。
洞察があれば教えてください。
編集:私の目的は、私のバックグラウンドアプリを取り囲むことなく通知を却下することです。
これは正しいです... – superUser
解決策は良いですが、説明が不正確だと思います。 「現在のアクティブなアプリケーションを保留中の意図として取得する」ことはありません。空のインテントを送信し、通知トレイを折りたたむ可能性が高くなります。意図は何もしないので、私たちはアクティビティスタックの先頭に戻ります。 –
ああ、チャンピオンのように働いて..ありがとう.. –