2012-11-17 5 views
18

In meiner App gibt es einen Dienst, der im Hintergrund ausgeführt wird. Ich möchte den Benutzer darüber informieren, dass der Dienst ausgeführt wird. Aber ich brauche, dass Benutzer kann die Benachrichtigung löschen - durch Löschtaste drücken oder Streichen Sie es aus, in Benachrichtigungsleistenicht entfernbare Benachrichtigung

enter image description here

Es bedeutet, brauche ich meine Benachrichtigung über Infobereich zeigen

Antwort

53

Dies ist möglich, aber die Art, wie Sie es implementieren, hängt von der API-Ebene ab, für die Sie entwickeln.

Für API-Level unter 11 können Sie Notification.FLAG_NO_CLEAR einstellen.

// 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; 

Für API Ebenen über 11, oder wenn die Android Support Library verwendet wird, kann man es so implementieren: Dies kann wie folgt implementiert werden

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(); 
+0

In combitation mit Post antew, war ich genau für Notification.FLAG_ONGOING_EVENT suchen. Danke vielmals – Kelib

9

Nicht entfernbare Benachrichtigung zu erstellen, setOngoing verwenden (wahr);

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

         .setSmallIcon(R.drawable.ic_service_launcher) 

         .setContentTitle("My title") 

         .setOngoing(true) 

         .setContentText("Small text with details"); 
Verwandte Themen