Обычная задача Android (эквивалент cronjob)

В последний раз, когда этот вопрос задавался (другим пользователем), ответ отвечал:

Если это работает, вы можете использовать Timer/TimerTask и Handler, или вы можете использовать postDelayed() и AsyncTask.

Здесь: Повторяющаяся задача Android

Я все еще учась программировать Android. Я прошел через навыки, которые я знаю, включая темы, и у меня было много проблем с моим кодом. Может ли кто-нибудь привести пример использования: time/timertask и обработчик OR postDelayed() и AsyncTask.

Заранее спасибо:)

Ответ 2

Для задач типа Cron вы должны использовать AlarmManager, это системная служба, для ее использования в коде вам нужно позвонить:

AlarmManager myAlarmManager = Context.getSystemService(Context.ALARM_SERVICE).

Подробные документы о AlarmManager здесь.

Ответ 3

Если вы хотите построить бегун cronjob, то вы хотите Service:

Служба - это компонент приложения, который может выполнять длительные операции в фоновом режиме и не предоставляет пользовательский интерфейс. Другой компонент приложения может запустить службу, и он будет продолжать работать в фоновом режиме, даже если пользователь переключится на другое приложение. Кроме того, компонент может связываться с сервисом для взаимодействия с ним и даже выполнять межпроцессное взаимодействие (IPC). Например, служба может обрабатывать сетевые транзакции, воспроизводить музыку, выполнять ввод/вывод файлов или взаимодействовать с поставщиком контента, все из фона.

Ответ 4

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

Общая идея заключается в том, что вы переопределяете класс Service и настраиваете для активации вашего сервиса. В отличие от демонов и служб Windows, службы Android не всегда работают - они запускаются (как правило, при активации аварийным сигналом), выполняют работу, а затем завершают работу. В некоторых случаях вам может понадобиться блокировка частичного пробуждения, чтобы поддерживать работу до завершения задачи - в противном случае Android может убить вашу службу преждевременно.