Я пытаюсь отобразить текущее уведомление без начального отображения текста тикера. Мне удалось заставить это работать с уведомлением в старом стиле, установив для текста тикера значение null в конструкторе:
mNotification = new Notification(R.drawable.ic_stat_playing, null, System.currentTimeMillis());
Однако я заметил, что создание экземпляра уведомления таким образом теперь устарело, и вместо этого рекомендуется использовать Notification.Builder. Однако теперь я не могу получить уведомление для отображения без текста тикера, даже если я установил для текста тикера значение null:
Notification.Builder builder = new Notification.Builder(this);
CharSequence contentText = "contentText here";
Intent launchIntent = new Intent(this, MainActivity.class);
// The PendingIntent to launch our activity if the user selects this
// notification
PendingIntent contentIntent = PendingIntent.getActivity(this, -1,
launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.ic_stat_playing)
.setLargeIcon(null)
.setTicker(null)
.setOnlyAlertOnce(true)
.setWhen(System.currentTimeMillis())
.setContentTitle(contentTitle)
.setOngoing(true)
.setContentText(contentText);
mNotification = builder.getNotification();
startForeground(NOTIFICATION_ID, mNotification);
Разве нельзя отключить отображение бегущей строки с помощью нового Notification.Builder? Это так, к сожалению, так как я не смогу обновить устаревший код.
Изменить. Код, который наконец сработал:
mNotification = builder.getNotification();
mNotification.tickerView = null;
startForeground(NOTIFICATION_ID, mNotification);
setTicker(null)
). Что происходит с приведенным выше кодом? Тикер все равно появляется? Какая ОС, устройство и т.д.? - person dsandler   schedule 05.07.2012