Intereting Posts
Mp4parser запускается на устройстве из Android Studio, но сбой при установке APK вручную Android – Можно ли отключить нажатие кнопки «Домой» Пользовательский адаптер Listview с фильтром Android Cache.properties (система не может найти указанный файл) Как загрузить изображение через байтовый массив с помощью Glide? Проводник в Android Studio Android Studio не запускается: не удалось найти или загрузить основной класс com.intellij.idea.Main Как создать xml-файл в android Android: есть произвольный просмотр слайда под другим представлением, как и клавиатура программного обеспечения Android получит все страны на счетчике массива Ошибка в памяти при использовании API Карт Google Активность не отображается в реестрах, когда приложение находится в фоновом режиме Выполнение полупараллельного теста Espresso не выполняется на статических объектах? Макет деятельности: класс фрагмента: vs android: атрибуты имени Прослушиватель против обработчика в android

Действие расписания 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 с соответствующими ограничениями жизненного цикла (например, могут быть убиты в любое время).