web-dev-qa-db-fra.com

Android ne disparaît pas après avoir cliqué sur la notification.

Si vous rencontrez des problèmes avec une notification que je souhaite afficher dans la barre de notification. Bien que je mette l'indicateur de notification sur Notification.DEFAULT_LIGHTS & Notification.FLAG_AUTO_CANCEL la notification ne disparaît pas après avoir cliqué dessus. Des idées que je fais mal?

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

Lors de la construction de Notification par NotificationBuilder, vous pouvez utiliser notificationBuilder.setAutoCancel(true);.

283
Kamil Lelonek
notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL

De la documentation:

Peu à être bitwise-oudans le champ des indicateurs qui doit être défini si la notification doit être annulée lorsque l'utilisateur clique dessus

129
synic
// 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;
27
Darcy

État 2016: vous pouvez utiliser mBuilder.setAutoCancel(true).

Source: https://developer.Android.com/reference/Android/app/Notification.Builder.html

13
artdias90

La réponse pour moi était d'utiliser mBuilder.setOngoing(false)

1
Machine Tribe

Utilisez le drapeau 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;

et pour lancer l'application:

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);
1
Sachin Suthar