Какой лучший способ перепланировать задание на загрузку завершено? - PullRequest
0 голосов
/ 10 мая 2018

Задание может быть перепланировано двумя способами в планировщике заданий Android.

  1. Использование .setPersisted (true)
  2. Путем повторного планирования в BOOT_COMPLETED приемнике вещания.

Какой из этих способов лучше подходит для периодических работ?

1 Ответ

0 голосов
/ 12 мая 2018

Я бы не сказал, что есть лучший способ. Это зависит от варианта использования работы в вашем приложении. Для обоих требуется разрешение использования RECEIVE_BOOT_COMPLETED.

Если пользователь может включить или выключить периодическое задание (задание) или если задание с данными в ограничениях ожидает, и оно должно сохраняться при перезагрузке, вероятно, имеет смысл использовать функцию setPersisted (true). Таким образом, вам не нужно беспокоиться о каких-либо действиях, и задание будет автоматически загружаться с диска при загрузке. Насколько я понимаю, задание также следует планировать с того места, на котором оно было остановлено до перезагрузки, чтобы обеспечить более равномерное планирование задания.

В противном случае, если вы не хотите, чтобы это задание было запланировано до получения намерения BOOT_COMPLETED (может быть много причин для этого), то после получения этого намерения может быть подходящее место для планирования задания. Вы также можете перепланировать не только получение намерения BOOT_COMPLETED, но и другие намерения, такие как MY_PACKAGED_REPLACED. Все эти намерения могут быть получены, и задания запланированы в одном BroadcastReceiver.

Скорее всего, есть другие причины для того или иного пути.

...