web-dev-qa-db-fra.com

notification non amovible

Dans mon application, un service fonctionne en arrière-plan. Je veux informer l'utilisateur que le service est en cours d'exécution. Mais il me faut cet utilisateur ne peut pas supprimer la notification - en appuyant sur le bouton d'effacement ou en la faisant glisser dans la barre de notification

enter image description here

Cela signifie que je dois afficher ma notification au-dessus de la zone de notification.

19
Kelib

C'est possible, mais la façon dont vous l'implémentez dépend du niveau d'API pour lequel vous développez.

Pour les niveaux d'API inférieurs à 11, vous pouvez définir Notification.FLAG_NO_CLEAR . Ceci peut être implémenté comme ceci:

// Create notification
Notification note = new Notification(R.drawable.your_icon, "Example notification", System.currentTimeMillis());

// Set notification message
note.setLatestEventInfo(context, "Some text", "Some more text", clickIntent);

// THIS LINE IS THE IMPORTANT ONE            
// This notification will not be cleared by swiping or by pressing "Clear all"
note.flags |= Notification.FLAG_NO_CLEAR;

Pour les niveaux d'API supérieurs à 11, ou lorsque vous utilisez Android Support Library , vous pouvez le mettre en œuvre de la manière suivante:

Notification noti = new Notification.Builder(mContext)
    .setContentTitle("Notification title")
    .setContentText("Notification content")
    .setSmallIcon(R.drawable.yourIcon)
    .setLargeIcon(R.drawable.yourBigIcon)
    .setOngoing(true) // Again, THIS is the important line
    .build();
56
Ole

Pour créer une notification non amovible, utilisez simplement setOngoing (true);

NotificationCompat.Builder mBuilder =
                         new NotificationCompat.Builder(this)

                        .setSmallIcon(R.drawable.ic_service_launcher)

                        .setContentTitle("My title")

                        .setOngoing(true)  

                        .setContentText("Small text with details");
11
cheetah

Cela ressemble à Notification.FLAG_NO_CLEAR ou Notification.FLAG_ONGOING_EVENT est ce que vous recherchez.

3
antew

Pour créer une notification non amovible, utilisez simplement setOngoing (true);

Pour créer une notification amovible, utilisez simplement setOngoing (false);

0
Adam