Действие расписания Android

Чтобы сделать некоторые действия в течение некоторого времени, я обнаружил, что есть несколько вариантов:

  1. Использовать AlarmManager
  2. Использовать ScheduledExecutorService
  3. Использовать метод обработчика postDelayed

В чем большая разница? Какова наилучшая практика создания расписания?

Solutions Collecting From Web of "Действие расписания Android"

  1. AlarmManager – это глобальный «Таймер», этот человек может разбудить ваше приложение, даже если оно не было запущено. Тяжелый парень.
  2. ScheduledExecutorService : стандартный Java-способ делать некоторые запланированные материалы, используемые в JSE, простые и знакомые для Java-разработчиков. Задание будет выполняться в другом потоке, чем в пользовательском интерфейсе или потоке, которые планируют это задание. Хорошо подходит для обслуживания, чтобы не иметь дело с пользовательским интерфейсом и долго и тяжело работать.
  3. Handler : способ Android планировать задание, выполнять работу в потоке пользовательского интерфейса (если обработчик был создан в пользовательском интерфейсе), поэтому он не может быть очень тяжелым, или он просто заморозит ваш пользовательский интерфейс.

AlarmManager не зависит от вашего приложения и гарантирует, что задача будет запущена.
Остальные два выполняются как часть Activity / Service с соответствующими ограничениями жизненного цикла (например, могут быть убиты в любое время).