Android – Firebase jobdispatcher

Я хотел бы знать, можно ли использовать Firebase jobdispatcher для планирования URL-адреса и получить ответ, чтобы обновить db. Я бы хотел, чтобы он работал один раз в день по ночам. Кто-нибудь знает возможно ли это?

Я не могу найти хороший пример этого. Я уже читал документацию по Android и https://github.com/firebase/firebase-jobdispatcher-android#user-content-firebase-jobdispatcher- .

Мне нужно использовать Firebase jobdispatcher, потому что я нацелен на API 16.

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

ОБНОВИТЬ

Это то, что я сделал, чтобы запланировать его один раз в день.

final int periodicity = (int) TimeUnit.HOURS.toSeconds(24); final int toleranceInterval = (int) TimeUnit.HOURS.toSeconds(1); FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this)); Job job = dispatcher.newJobBuilder() .setService(UpdateTVJobService.class) .setTag(JOB_TAG) .setTrigger(Trigger.executionWindow(periodicity, periodicity + toleranceInterval)) .setLifetime(Lifetime.FOREVER) .setRecurring(true) .setReplaceCurrent(true) .build(); int result = dispatcher.schedule(job); if (result != FirebaseJobDispatcher.SCHEDULE_RESULT_SUCCESS) { Log.d("JOB_TAG", "ERROR ON SCHEDULE"); } 

    Вы можете планировать повторяющиеся задания с помощью Firebase JobDispatcher. В соответствии с вашим требованием вам необходимо создать службу, расширяющую JobService, которая получает ответ от url и обновляет db. Затем вы можете запланировать эту службу с помощью Firebase JobDispatcher. В процессе выполненияWindow вы должны указать самое раннее и последнее время, когда работа должна работать в идеальных условиях.

    Если вы хотите запланировать работу каждые 24 часа, вы можете использовать окно выполнения (60 * 60 * 24,60 * 60 * 24 + 60). Затем, если вы хотите, чтобы он работал каждую ночь, вы должны убедиться, что это Первоначально запланировано на ночь. Для этого вы можете сначала использовать AlarmManager для увольнения в ночное время (только один раз), когда приложение установлено, и планировать повторяющееся задание с помощью диспетчера заданий ИЛИ другой способ заключается в том, что на основе разницы от настоящего времени и желаемого времени выполнения вы можете Планируйте нерекурсивную работу, используя jobdispatcher, который будет работать ночью, и внутри этой службы заданий вы можете планировать повторяющуюся работу с помощью диспетчера заданий.

    ExecutionWindow указывает приблизительное время. Не гарантировано, что он будет работать в данном окне. Если он пропустит окно, задание будет запущено в ближайшее время при идеальных обстоятельствах. Для повторных заданий после завершения задания следующая работа будет вычислять время выполнения окна с момента последнего запуска задания.

     Job myJob = dispatcher.newJobBuilder() .setTag("my-unique-tag") .setRecurring(true) .setLifetime(Lifetime.FOREVER) .setService(MyJobService.class) .setTrigger(Trigger.executionWindow(60*60*24,60*60*24+60)) .setReplaceCurrent(false) .setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL) .setConstraints(Constraint.ON_ANY_NETWORK) .setExtras(myExtrasBundle) .build(); dispatcher.mustSchedule(myJob); 

    Вы можете запланировать повторяющееся задание, указав Job.Builder для создания повторяющегося задания с помощью триггера, который имеет окно выполнения в соответствии с вашими потребностями.

    Intereting Posts
    Подключение MySql с Android без использования PHP В ExpandableListView, как обнаружить групповое свертывание? Facebook просит использовать хэширование для Android для приложения, которое все еще находится в режиме песочницы Кадровое видео в стиле устройства из Android Studio Screen Record Android – Не удалось выделить память Создайте «историю» для SearchView на ActionBar Как проверить JUnit ContentResolver.notifyChange Удалить последний символ edittext Android: как предотвратить изменение размера окна при отображении виртуальной клавиатуры Кнопка андроида не доступна при воспроизведении анимации Показывать клавиатуру для edittext при запуске фрагмента Добавьте onlongclick прослушиватель в alertdialog Какой из них быстрее? Integer.valueOf (строка строки) или Integer.parseInt (строка строки)? Где кордова-2.7.0.jar? Ant jar error: Execute failed: java.io.IOException: не удается запустить программу … $ {aapt} ": ошибка = 2, нет такого файла или каталога