Android переносит фоновый сервис в jobcheduler
У нас есть проект, который использует фоновый сервис для получения событий в режиме реального времени с сервера. мы используем подключение через веб-сокет для извлечения данных. но теперь в Android Oreo или выше, ОС начинает показывать предупреждение батареи.
меня беспокоит то, что если мы перейдем на jobscheduler, то через некоторое время он остановится. мы хотим показать уведомление, если событие произойдет
Я попробовал планировщик работы, и он предлагает повторяющиеся вызовы. но наше соединение в режиме реального времени, поэтому, если задание на остановку останавливается, мы не получаем данные. так как другие приложения справляются с этим (пример WhatsApp)
Каков наилучший способ сохранить наше соединение и получить данные?
спасибо заранее
1 ответ
меня беспокоит то, что если мы перейдем на jobscheduler, то через некоторое время он остановится.
Да. В режиме ожидания все запланированные задания откладываются до тех пор, пока ОС не сделает доступным окно обслуживания.
Каков наилучший способ сохранить наше соединение и получить данные?
Вы не должны поддерживать постоянное соединение с вашим сервером и постоянно запускать фоновый сервис. Начиная с Android O, вы не сможете запускать Сервисы в фоновом режиме. ОС прекратит работу всех служб, и любые попытки запустить службу в фоновом режиме приведут к IllegalStateException
Ваше требование кажется, что вам нужно использовать FCM. Основная идея состоит в том, чтобы вместо того, чтобы постоянно запрашивать данные у сервера, пусть сервер уведомляет приложение о доступности данных. Для получения более подробной информации и шагов реализации, обратитесь к официальному документу.