알림을 클릭 한 후 Android 알림이 사라지지 않습니다


133

알림에 문제가있는 경우 알림 표시 줄에 표시하고 싶습니다. 알림 플래그를 알림으로 설정했지만 Notification.DEFAULT_LIGHTS & Notification.FLAG_AUTO_CANCEL클릭 한 후에 사라지지 않습니다. 내가 잘못하고있는 아이디어가 있습니까?

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

    int icon = R.drawable.icon;
    CharSequence tickerText = "Ticker Text";
    long time = System.currentTimeMillis();

    Notification notification = new Notification(icon, tickerText, time);
    notification.flags = Notification.DEFAULT_LIGHTS & Notification.FLAG_AUTO_CANCEL; 

    Context context = getApplicationContext();
    CharSequence contentTitle = "Title";
    CharSequence contentText = "Text";
    Intent notificationIntent = new Intent(this, SilentFlipConfiguration.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
    mNotificationManager.notify(1,notification);

답변:


305

Notification의해 구축 하는 동안 NotificationBuilder사용할 수 있습니다 notificationBuilder.setAutoCancel(true);.


2
그렇다면 Notification mNotificationManager.notify(1,notification);과 NotificationBuilder 를 사용 하여 알림을 만드는 차이점은 무엇 mNotificationManager.notify(1, mBuilder.build());입니까? 감사.
Yohanes AI

9
이 답변은 받아 들여 져야합니다. 현재 안드로이드 디자인 교리와 더 일치합니다
jmaculate

이 대답은 맞습니다. 하나만 작동하지만 항상 그런 것은 아닙니다. GCM에 스택 알림이 있거나 문제가있는 경우 문제가 있습니다. 알림 서버를 핑하면 많은 알림과 함께 반환되고 때로는 알림 모양을 반복합니다.
Nikola Milutinovic

5
notificationBuilder.setAutoCancel(true);나를 위해 작동하지 않습니다. 보류 의도 앞에 두어야합니까?
Kairi San

129
notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL

설명서에서 :

사용자가 클릭 할 때 알림을 취소해야하는 경우 설정해야하는 플래그 필드에 비트 단위 또는 비트로 표시되는 비트


3
이것은 정답이 아닙니다. 클래스가 아닌 클래스의 Notification.DEFAULT_LIGHTS일부입니다 . 적절한 세터에 대한 내 대답을 참조하십시오. Notification.defaultsNotification.flags
Darcy

notification.flags = 알림 .DEFAULT_LIGHTS | 알림 .FLAG_AUTO_CANCEL; 이 방법은 당신에게 동의어 감사합니다.
Ravikumar11

1
이 답변의 코드로 인해 알림 소리가 여러 번 재생되었습니다. 다른 답변을 확인하십시오.
금지 지오 엔지니어링

27
// Uses the default lighting scheme
notification.defaults |= Notification.DEFAULT_LIGHTS;

// Will show lights and make the notification disappear when the presses it
notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;

1
나는 안드로이드 문서를 갔다. 플래그를 사용해야 할 시점이별로 없습니다. 알림을 표시하기에 충분한 notification.defaults = notification.DEFAULT_LIGHTS가 아닌 이유는 무엇입니까? 깃발없이 진동과 소리가 작동하기 때문입니다.
Ashwin

NotificationBuilder를 사용하고 있습니다. NotificationCompat.Builder mBuilder = new NotificationCompat.Builder (this) .setSmallIcon (android.R.drawable.ic_popup_sync) .setContentTitle ( "New Tweet") .setContentText ( ""+ count + "tweets") ; mBuilder.setDefaults (NotificationCompat.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL);
Joseph



1

Notification 플래그를 사용하십시오 .FLAG_AUTO_CANCEL

Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, pendingIntent);

// Cancel the notification after its selected
notification.flags |= Notification.FLAG_AUTO_CANCEL;

앱을 시작하려면 :

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

Intent intent = new Intent(context, App.class);

PendingIntent pendingIntent = PendingIntent.getActivity(context, intent_id, intent, PendingIntent.FLAG_UPDATE_CURRENT);

0

알림 제거

다음 중 하나가 발생할 때까지 알림은 계속 표시됩니다.

  1. 사용자가 알림을 닫습니다.
  2. 사용자는 알림을 클릭하고 알림을 만들 때 setAutoCancel ()을 호출했습니다.
  3. 특정 알림 ID에 대해 cancel ()을 호출합니다. 이 방법은 진행중인 알림도 삭제합니다.
  4. cancelAll ()을 호출하면 이전에 발행 한 모든 알림이 제거됩니다.
  5. setTimeoutAfter ()를 사용하여 알림을 작성할 때 시간 종료를 설정하면 지정된 기간이 경과 한 후 시스템이 알림을 취소합니다. 필요한 경우 지정된 시간 초과 기간이 경과하기 전에 알림을 취소 할 수 있습니다.

자세한 내용은 https://developer.android.com/training/notify-user/build-notification?hl=ko를 참조하십시오.

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