Ответ

#  Используем Crond вместе с Android
vit01 (mira, 1) → All   –  04:09:31 2017-09-17

Несведущий читатель на вопрос "как использовать крон на андроиде?" наверняка скажет, что надо скомпилировать обычный демон или стащить его из busybox и, собственно, сразу запускать в консоли.

Увы, это способ нерабочий. Почему? Потому что для экономии батареи андроид, когда мы его не используем, уходит в сон и вместе с собой тащит спать все запущенные приложения. Так что наш консольный Cron застопорится вместе с девайсом и начнёт либо пропускать задания, либо выполнять их в неправильное время.

Можно поставить так называемый постоянный WakeLock. Это значит запретить устройству спать. Я так уже пробовал (и Cron отлично работал), но заряд батареи быстро иссякал через несколько часов.

Что делать?

Нативные приложения используют системный AlarmManager, чтобы выполнять свои задачи по расписанию. Поэтому ОС просыпается в чётко заданное время. (уведомления IDEC Mobile и прочие следилки работают именно так).

Можно сделать Android-версию Crond, работающую через AlarmManager, и такие реализации существуют. Не так давно подобная свободная тулза появилась в F-Droid. Программа так и называется: crond.

Скачать: https://f-droid.org/packages/it.faerb.crond/

После запуска жмём "Enable crond" и ставим галочку "Use wake lock for script execution". Не беспокойтесь, этот WakeLock не постоянный, он работает только во время выполнения наших скриптов, чтобы исключить случайные сбои из-за засыпаний.

>> Читать далее