Я использую существующее приложение для использования уведомлений MediaStyle для предоставления информации о блокировке экрана и управления транспортом в Android 5.0. Однако представляется, что обновление таких уведомлений работает не так, как ожидалось. Следующий фрагмент кода создает уведомления каждый раз при нажатии кнопки, увеличение счетчика отображается в названии уведомления:Обновления уведомлений MediaStyle
public class MainActivity extends Activity {
private int serial;
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView)findViewById(R.id.textView1);
}
public void buttonClick(final View view) {
final Notification.Builder builder = new Notification.Builder(this)
.setContentTitle("Title " + serial)
.setContentText("Text")
.setContentInfo("Info")
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher))
.setOngoing(true)
.setStyle(new Notification.MediaStyle())
.setVisibility(Notification.VISIBILITY_PUBLIC);
NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(1, builder.build());
text.setText("Serial = " + serial);
serial++;
}
}
Проблемы:
- При выполнении в эмуляторе работает 5.0, текст уведомления в ящике уведомлений или экране блокировки не синхронизируется с последовательностью, отображаемой в TextView. Если MediaStyle установлен в , а не, уведомления имеют правильную нумерацию в ящике уведомлений, но не на экране блокировки.
- Уведомление MediaStyle отображается корректно на экране блокировки, пока оно не будет просмотрено в ящике уведомлений в первый раз. После этого он больше не отображается как уведомление MediaStyle на экране блокировки (но не так, как стандартное уведомление, отличное от MediaStyle). Примечательно, что кнопки, добавленные с помощью
addAction()
, больше не отображаются, пока эмулятор не будет перезапущен.
Таким образом, я подозреваю, что я делаю что-то очень неправильно (либо это, либо изображение Android, работающее на эмуляторе, сломано, но это кажется менее вероятным). Есть идеи?