Firebase JobDispatcher - как он работает по сравнению с предыдущими API (JobScheduler и GcmTaskService)?

Фон

У Google есть несколько решений для планирования работы / задач, таких какJobScheduler а такжеGcmTaskService, У каждого есть свои преимущества и недостатки.

Недавно Google представил новую библиотеку под названием «Firebase JobDispatcher».

Эта проблема

К сожалению, об этом новом API читать очень мало. На самом деле, действительно трудно найти что-либо об этом.

Единственное, что я нашел, это иханонс видео а такжеобразец, Но даже их, не так много, чтобы знать об этом API.

Вопросы

Глядя на предыдущие вопросы, исследования и сравнения, которые я имел с другими API (ВотНапример, я хотел бы спросить, как работает новый API, и знать, что следует учитывать при его использовании:

Может ли задание иметь параметры, которые остаются с ним и даже могут быть изменены при необходимости? Они говорят в образцеДополнительный комплект пользовательских дополнений. По умолчанию это пустой Bundle.«Это так? Может ли оно быть изменено заданием при его выполнении?

Можно ли легко перепланировать работу? Говорят "Логическое значение, указывающее, должно ли задание повторятьсяMsgstr "Как его можно выбрать, когда нужно перепланировать? Я попробовал образец и выбрал" Повторяющийся ", но, похоже, он не запускается снова, только один раз.

Может ли он быть защищен от работы библиотеки (из-за уникальных идентификаторов)?

Требуется ли дополнительная осторожность при обновлении приложения (как это делали предыдущие API)? Можно ли запланировать работу после обновления приложения? Тестирование на образце, похоже, что после обновления приложения работы полностью исчезли. Можно ли этого избежать?

Нужно ли этоRECEIVE_BOOT_COMPLETED в случае, если я хочу, чтобы работа по-прежнему планировалась даже после перезагрузки устройства? Образец, кажется, есть.

Можно ли получить список всех запланированных заданий и их информацию (включая параметры), а также иметь возможность отменить определенные / все из них и даже изменить их?

Будет ли работа удалена после операции очистки данных приложения?

Можно ли сказать заданию, что лучше всего оно будет выполнено в течение определенного периода времени (например, между 7:00 и 8:00 утра)? УпоминаетсяExecutionWindowTrigger - который указывает временное окно, в котором должно быть выполнено задание". Это так? Что происходит, когда он пропускает это окно?

МетодonStartJob вJobService класс возвращает логическое значение и описание для него "есть ли еще работа?«Что это значит?needsReschedule параметрjobFinished метод значит? Они связаны друг с другом?

Есть ли какие-то ограничения, о которых я должен знать? Например, минимальные и максимальные значения для каждой из функций?

Ответы на вопрос(1)

Ваш ответ на вопрос