Frage

Ich habe die Funktion zum Benachrichtigen und Anzeigen in der Benachrichtigungsleiste geschrieben:

private void showNotification()
    {
            CharSequence title = "Hello";
            CharSequence message = "Notification Demo";

            NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
            Notification notification = new Notification(R.drawable.icon, "A Notification", System.currentTimeMillis());
            Intent notificationIntent = new Intent(this, Main_Activity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

            notification.setLatestEventInfo(Main_Activity.this, title, message, pendingIntent);
            notificationManager.notify(NOTIFICATION_ID, notification);
    }

Es funktioniert gut, aber what way we can keep the notification steady at Notification bar Auch wenn der Benutzer die Benachrichtigungsleiste "Löschen" von Notificatios drücken?

Bitte schauen Sie sich die Benachrichtigungsleiste der "Yahoo" -Anwendung an.

enter image description here

Ich habe diesen SDK -Artikel durchlaufen: http://developer.android.com/guide/topics/ui/notifiers/notifications.html#updating , aber nicht herausgefunden.

War es hilfreich?

Lösung

Verwenden FLAG_NO_CLEAR

Stellen Sie es einfach auf Ihre Notification Instanz, bevor Sie es an die Lieferung liefern NotificationManager:

notificaton.flags |= Notification.FLAG_NO_CLEAR;

bearbeiten: Ich habe jedoch gerade bemerkt, dass wenn Sie verwenden Notification.Builder (Da Wabe) und die Benachrichtigung "fortlaufend" machen wird, wird es auch immun gegen "alle". Sehen hier.

Anscheinend soll dies Entwickler davon abhalten, die zu verwenden FLAG_NO_CLEAR Auf einem nicht-egoing-Benachrichtigung, da dies den Benutzer verwirren könnte.

Andere Tipps

Versuchen setongoing (wahr).

notification = new Notification.Builder(getApplicationContext())
          .setLargeIcon(
                   BitmapFactory.decodeResource(getResources(),     R.drawable.ic_launcher))
          .setSmallIcon(R.drawable.ic_launcher).setTicker(tickerText)
          .setWhen(System.currentTimeMillis()).setContentTitle(contentTitle)
          .setOngoing(true)
          .setContentText(contentText)
          .setContentIntent(contentIntent)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top