Android - постоянное уведомление на панели уведомлений
Я написал функцию для уведомления и отображения на панели уведомлений:
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".
Я просмотрел эту статью в SDK: http://developer.android.com/guide/topics/ui/notifiers/notifications.html, но не смог найти.
2 ответа
Использование FLAG_NO_CLEAR
Просто установите его на свой Notification
экземпляр, прежде чем поставить его на NotificationManager
:
notificaton.flags |= Notification.FLAG_NO_CLEAR;
редактировать: я только что заметил, что если вы используете Notification.Builder
(начиная с Honeycomb) и делает уведомление "текущим", оно также становится невосприимчивым к "очистить все". Смотрите здесь.
По-видимому, это должно отговорить разработчиков от использования 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)