Hapus pemberitahuan setelah mengklik


120

Saya ingin notifikasi ditutup setelah pengguna mengkliknya. Saya melihat semua orang mengatakan untuk menggunakan flag, tetapi saya tidak dapat menemukan flag di mana pun karena saya menggunakan kelas NotificationCompat.Builder dan bukan kelas Notification. Ada yang tahu cara menghapus notifikasi sendiri?
Ini kode saya saat menyetel notifikasi:

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());

Jawaban:


325

Mudah, cukup sebut ini:

mBuilder.setAutoCancel(true);

Selain itu, meskipun tidak terlalu diperlukan, jika Anda benar-benar ingin menggunakan FLAG_AUTO_CANCEL, cukup panggil ini sebelum menelepon mNotificationManager.notify:

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

2
Ini adalah jawaban terbaik .. flag_auto_cancel tidak berfungsi..kamu menyelamatkan hariku!
allemattio

16
getNotificationssudah usang, gunakan: mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;sebagai gantinya
blueware

mBuilder.build () juga tidak digunakan lagi
Mansuu ....

2
ketika saya mengetuk notifikasi, setAutoCancel (true) ini memang berfungsi. TAPI ketika saya mengklik Tindakan di pemberitahuan (panggil dalam kasus saya), TIDAK BEKERJA!
Async-

1
Silakan lihat pertanyaan saya di sini: stackoverflow.com/questions/37595594/…
Async-

18

Coba ini....

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()sudah usang sekarang gunakan .build()sebagai gantinyamBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;
Shylendra Madda

9

Berikut pemberitahuannya:

    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);

kunci di balik pembatalan saat diklik adalah:

            .setAutoCancel(true)

saya harap ini menyelesaikan masalah.



1

Di kotlin, Anda dapat menggunakan:

mBuilder.build().flags.and(Notification.FLAG_AUTO_CANCEL)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.