Android - продолжайте уведомлять уведомление в панели уведомлений

StackOverflow https://stackoverflow.com/questions/5338501

Вопрос

Я написал функцию для уведомления и отображения в панели уведомлений:

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);
    }

Он работает нормально, но what way we can keep the notification steady at Notification bar Даже когда пользователь нажимает кнопку «Очистить» уведомление из панели уведомлений?

Пожалуйста, посмотрите на панель уведомлений «Yahoo».

enter image description here

Я прошел эту статью SDK: http://developer.android.com/guide/topics/ui/notifiers/notifications.html#updating , но не смог узнать.

Это было полезно?

Решение

Использовать FLAG_NO_CLEAR

Просто установите его на свой Notification экземпляр, прежде чем поставлять его NotificationManager:

notificaton.flags |= Notification.FLAG_NO_CLEAR;

редактировать: Я только что заметил, что если вы используете Notification.Builder (С тех пор, как сот) и сделать уведомление «продолжающееся», оно также станет невосприимчивым к «очистить все». Видеть здесь.

Похоже, это должно отговорить разработчиков от использования FLAG_NO_CLEAR на непонигающем уведомлении, так как это может сбить с толку пользователя.

Другие советы

Пытаться Setongoing (True).

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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top