Android — фоновая служба

Я пишу приложение для Android, которое каждые 5 минут будет запрашивать данные с сервера и загружать их в sqlite. Позже данные из sqlite будут отображаться пользователю всякий раз, когда он захочет просмотреть данные. База данных будет содержать только данные за последние 2 дня, а более старые данные будут удаляться.

Я хочу реализовать всю эту функциональность с помощью Firebase JobScheduler. Но прежде чем писать, я хочу знать, подходит ли этот инструмент? Есть ли лучший способ реализовать эту функциональность? Или любой рекомендуемый способ?

Заранее спасибо.


person user2908751    schedule 23.01.2018    source источник
comment
когда вы говорите сервер, вы имеете в виду веб-API ?? или база данных firebase?   -  person Shah    schedule 23.01.2018
comment
для означает, что сервер означает RESTful API, который фактически дает мне необходимые данные   -  person user2908751    schedule 23.01.2018


Ответы (2)


Ваш план реализации звучит нормально для меня. Но я думаю, что синхронизация каждые 5 минут чрезмерна и вызовет проблемы у ваших пользователей из-за постоянного разряда батареи и использования сети.

person Doug Stevenson    schedule 23.01.2018
comment
5 минут — наш первоначальный план; мы установим его настраиваемым для пользователя. Но минимум будет 5 минут никак. Я знаю, что это плохо с точки зрения батареи и сети, но наши данные настолько важны, что даже 5 минут - это слишком много. Но есть ли лучший способ добиться всего этого? - person user2908751; 23.01.2018
comment
Не то, что я знаю о. - person Doug Stevenson; 23.01.2018

Ваша реализация правильная, но в этом механизме есть огромный недостаток, то есть разряд батареи. Я думаю, что лучший механизм был бы, если бы вы реализовали эту функциональность на стороне сервера.

  1. Сервер проверяет, есть ли какие-либо изменения в базе данных
  2. Если он обнаружит какие-либо изменения, вам просто нужно отправить конкретные обновленные данные в ваш мобильный агент.

Преимущество:
1. Вам не нужно беспокоиться о батарее мобильного агента 2. Вся тяжелая работа и расчеты выполняются на стороне сервера.

Наслаждаться !!

person Shah    schedule 23.01.2018
comment
У меня просто возникла мысль запускать службу каждые 5 минут, получать обновления из API и затем останавливать службу. Это возможно? - person user2908751; 23.01.2018
comment
да, возможно, вы снова запустите службу и так далее. Лично я бы не рекомендовал. - person Shah; 23.01.2018