クリック後に通知を削除


120

ユーザーがクリックした後に通知が閉じられるようにしたい。誰もがフラグを使用するように言っているのを見ましたが、NotificationクラスではなくNotificationCompat.Builderクラスを使用しているため、どこにもフラグを見つけることができません。誰かが自分で通知を削除する方法を知っていますか?
通知を設定するときのコードは次のとおりです。

NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("New Question")
            .setContentText("" + QuestionData.getAuthor().getUserName() + ": " + QuestionData.getQuestion() + "");

    Intent openHomePageActivity = new Intent("com.example.ihelp.HOMEPAGEACTIVITY");
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    stackBuilder.addNextIntent(openHomePageActivity);

    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(
                0,
                PendingIntent.FLAG_UPDATE_CURRENT
            );
    mBuilder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);       

    mNotificationManager.notify(0, mBuilder.build());

回答:


325

簡単、これを呼び出すだけです:

mBuilder.setAutoCancel(true);

また、必ずしも必要ではありませんが、本当にを使用したい場合はFLAG_AUTO_CANCEL、呼び出す前にこれを呼び出しますmNotificationManager.notify

mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;

2
これが最良の答えです。.flag_auto_cancelが機能しませんでした。
allemattio 2013

16
getNotifications廃止予定です。mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;代わりに次を使用してください
ブルーウェア

mBuilder.build()も非推奨
Mansuu ....

2
通知をタップすると、このsetAutoCancel(true)が実際に機能します。しかし、通知(私の場合は呼び出し)で[アクション]をクリックしても機能しません。
非同期

1
ここで私の質問を参照してください:stackoverflow.com/questions/37595594/...
Async-

18

これを試して....

NotificationManager mNotificationManager =
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

 ..........
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
            this).setSmallIcon(R.drawable.push_notify_icon)
            .setContentTitle("New Question!")
            .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
            .setAutoCancel(true).setContentText("" + QuestionData.getAuthor().getUserName() + ": " + QuestionData.getQuestion() + "");
mBuilder.setContentIntent(contentIntent);

    ..............        


mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(0, mBuilder.build());

1
.getNotification().build()代わりに使用 するようになりましたmBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;
Shylendra Madda

9

ここに通知があります:

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_calendar)
            .setContentTitle("My Firebase Push notification")
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(soundUri)
            .setContentIntent(pendingIntent);

クリック時のキャンセルの背後にあるキーは次のとおりです。

            .setAutoCancel(true)

問題が解決することを願っています。



1

kotlinでは、以下を使用できます。

mBuilder.build().flags.and(Notification.FLAG_AUTO_CANCEL)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.