Tıkladıktan sonra bildirimi kaldır


120

Kullanıcı üzerine tıkladıktan sonra bildirimin kapatılmasını istiyorum. Herkes bayrakları kullan dediğini gördüm ama bayrakları hiçbir yerde bulamıyorum çünkü NotificationCompat.Builder sınıfını değil Notification sınıfını kullanıyorum. Birinin bildirimi kendi kendine nasıl kaldıracağını bilen var mı?
Bildirimi ayarlarken kullandığım kod:

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

Yanıtlar:


325

Kolay, basitçe şunu arayın:

mBuilder.setAutoCancel(true);

Ayrıca, gerçekten gerekli olmasa da, gerçekten kullanmak istiyorsanız FLAG_AUTO_CANCEL, aramadan önce şunu arayın mNotificationManager.notify:

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

2
Bu en iyi cevap ... flag_auto_cancel çalışmıyordu .. Günümü kurtardın!
allemattio

16
getNotificationskullanımdan kaldırıldı, mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;bunun yerine şunu kullanın
blueware

mBuilder.build () de kullanımdan kaldırıldı
Mansuu ....

2
Bildirime dokunduğumda bu setAutoCancel (true) gerçekten çalışıyor. ANCAK bildirimdeki Eylem'e tıkladığımda (benim durumumda arama), ÇALIŞMIYOR!
Asenkron

1
Lütfen
şuradaki soruma

18

Bunu dene....

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()kullanımdan kaldırıldı şimdi .build()bunun yerine şunu kullanın mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;
Shylendra Madda

9

İşte bildirim:

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

tıklamada iptalin arkasındaki anahtar şudur:

            .setAutoCancel(true)

umarım sorunu çözer.



1

Kotlin'de şunları kullanabilirsiniz:

mBuilder.build().flags.and(Notification.FLAG_AUTO_CANCEL)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.