ลบการแจ้งเตือนหลังจากคลิก


120

ฉันต้องการให้ปิดการแจ้งเตือนหลังจากที่ผู้ใช้คลิกที่มัน ฉันเห็นว่าทุกคนบอกให้ใช้แฟล็ก แต่ฉันไม่พบแฟล็กที่ใดเลยเพราะฉันใช้คลาส NotificationCompat.Builder ไม่ใช่คลาส Notification มีใครทราบวิธีลบการแจ้งเตือนด้วยตัวเองบ้างไหม
นี่คือรหัสของฉันเมื่อฉันตั้งค่าการแจ้งเตือน:

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 ไม่ทำงาน .. คุณช่วยชีวิตฉันไว้!
อัลลีมัตติโอ

16
getNotificationsเลิกใช้แล้วให้ใช้: mBuilder.build().flags |= Notification.FLAG_AUTO_CANCEL;แทน
blueware

mBuilder.build () ก็เลิกใช้งานเช่นกัน
Mansuu ....

2
เมื่อฉันแตะที่การแจ้งเตือน setAutoCancel (จริง) นี้ใช้งานได้จริง แต่เมื่อฉันคลิกที่การดำเนินการในการแจ้งเตือน (โทรในกรณีของฉัน) มันไม่ทำงาน!
Async-

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)

ฉันหวังว่ามันจะช่วยแก้ปัญหาได้


3

คุณสามารถเพิ่มค่าสถานะในการแจ้งเตือนของคุณ:

http://developer.android.com/reference/android/app/Notification.html#FLAG_AUTO_CANCEL

สิ่งนี้จะยกเลิกเมื่อคลิก


เพิ่มลงในค่าสถานะการแจ้งเตือนของวัตถุการแจ้งเตือนของคุณ
JoxTraex

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.