클릭 후 알림 제거


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;대신 다음 을 사용하십시오.
blueware

mBuilder.build는 ()는 지원되지 않습니다
Mansuu ....

2
알림을 탭하면이 setAutoCancel (true)가 실제로 작동합니다. 하지만 알림에서 작업을 클릭하면 (제 경우에는 전화로 문의) 작동하지 않습니다!
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)

문제가 해결되기를 바랍니다.



1

kotlin에서는 다음을 사용할 수 있습니다.

mBuilder.build().flags.and(Notification.FLAG_AUTO_CANCEL)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.