У меня есть приложение для Android, которое использовало сервисы для прослушивания обновлений местоположения.В связи с новой политикой Oreo для фоновых сервисов я обновляю приложение, чтобы использовать Foreground Services, чтобы сервисы не уничтожались ОС.Я сделал это, просто позвонив по номеру:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
startForeground(
NotificationsHelper.getNewNotificationID(this), //this will retrieve my singleton id
NotificationsHelper.getNotification(this, false) // this will create the notification object
);
return Service.START_STICKY;
}
Теперь то же самое уведомление используется другой службой, поэтому я делаю то же самое для него, используя тот же идентификатор уведомления.
Поскольку уведомление воссоздается для второго сервиса, будут ли оба сервиса по-прежнему рассматриваться на переднем плане (чтобы Oreo не собирался их уничтожать)?
Кроме того, если я воссоздаю одно и то же уведомлениев других местах в моем коде, всегда использующих один и тот же идентификатор, мои службы по-прежнему рассматриваются на переднем плане (снова не уничтожены Oreo)?
В принципе достаточно ли того, что уведомление с тем же идентификатором, что и используемое уведомлениезапустить службу переднего плана (даже если она создана заново), чтобы служба была службой переднего плана и поэтому не уничтожалась ОС?