Большинство из вас, кто знаком с API уведомлений и PendingIntent, знают, что setLatestEventInfo сейчас устарел.
Поэтому я пытаюсь заменить свой существующий код (в зависимости от устаревшего метода):
Context context = getApplicationContext();
Intent activityIntent = new Intent(context, Activity.class);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
Notification notification = new Notification(R.drawable.icon, getString(R.string.notify),System.currentTimeMillis());
PendingIntent startIntent = PendingIntent.getActivity(context, 0, activityIntent, 0);
notification.setLatestEventInfo(context, getString(R.string.notify), getString(R.string.notifysummary), startIntent);
this.startForeground(1234,notification);
Как вы можете догадаться, я вызываю это из службы, работающей в фоновом режиме. Когда служба запустится, она вызовет уведомление. Это постоянное постоянное уведомление, которое выводит действие «Activity.class» на передний план, если оно существует, и создает новый экземпляр действия, если оно было уничтожено. Работает нормально без проблем.
Теперь, желая перейти на более новый уровень API, я пытаюсь заменить приведенный выше код следующим NotificationBuilder:
Context context = getApplicationContext();
Intent activityIntent = new Intent(context, Activity.class);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent startIntent = PendingIntent.getActivity(context, 0, activityIntent, Intent.FLAG_ACTIVITY_SINGLE_TOP);
Notification notification = new Notification.Builder(context).setSmallIcon(R.drawable.ic_launcher).setContentText("App running").setContentTitle("My app").setOngoing(true).setAutoCancel(false).setContentIntent(startIntent).build();
this.startForeground(1234,notification);
Но нажатие на уведомление не имеет никакого эффекта. Однако я уже пробовал «Intent.FLAG_ACTIVITY_NEW_TASK», потому что в документации сказано, что я должен это делать. Это создает новую задачу, даже если действие уже находится сверху, в отличие от того, что говорится в документе: PendingIntent, FLAG_ACTIVITY_NEW_TASK.
Кто-нибудь сталкивался с такой же проблемой? Как создать постоянное уведомление, которое НЕ отклоняется при нажатии и перемещает активность наверх, если где-то в стеке, иначе создает новый экземпляр?
Спасибо за вашу помощь.