Android: существующие обработчики после перезагрузки устройства?

У меня есть вопрос об обработчиках и их существовании при перезагрузке устройства. Скажем, я выполнил 3 обработчика с задержкой в ​​3 часа, используя postDelayed(), я просто хотел знать, если, например, устройство было перезагружено, эти потоки все еще существуют? или мне нужно выполнить их снова?. если да, то как мне автоматически выполнять обработчики после перезагрузки устройства? Я читал некоторые потоки, в которых мне нужно запустить приемник, чтобы запустить службу, но я действительно не понимаю, как это сделать.


person lemoncodes    schedule 19.09.2012    source источник


Ответы (2)


я просто хотел знать, если, например, устройство было перезагружено, эти темы все еще существуют?

Нет. В любом случае, они также не будут существовать в течение трех часов, так как Android, скорее всего, сначала завершит ваш процесс. Пожалуйста, используйте AlarmManager для такой периодической работы.

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

Вы не знаете. Однако вы можете использовать BOOT_COMPLETED BroadcastReceiver для переназначения будильников в AlarmManager.

person CommonsWare    schedule 19.09.2012
comment
хм, да, мое приложение больше похоже на будильник, но я хотел запланировать будильник, скажем, через 3 часа, и я не могу придумать ничего другого, кроме как использовать обработчики для срабатывания будильника точно в нужное время. Вы знаете, как активировать сигнализацию без использования обработчиков? я имею в виду точное срабатывание будильника, например, пользователь выберет / установит время, когда срабатывает будильник? - person lemoncodes; 19.09.2012
comment
Вы знаете, как активировать сигнализацию без использования обработчиков? -- используйте AlarmManager, как я уже писал. я имею в виду точное срабатывание будильника, например, пользователь выберет / установит время, когда срабатывает будильник? -- используйте AlarmManager, как я уже писал. - person CommonsWare; 19.09.2012
comment
я запланировал будильник, а также попытался его остановить, но как мне автоматически остановить будильник, скажем, после 3 повторений?.. - person lemoncodes; 19.09.2012
comment
@lemoncodes: позвоните cancel() на AlarmManager после третьего повторения, чтобы отменить существующее запланированное мероприятие. - person CommonsWare; 19.09.2012
comment
проблема в том, как мне пометить повторы, как узнать или подсчитать повторы, setReapting() возвращает void, где их подсчитывать? - person lemoncodes; 21.09.2012
comment
@lemoncodes: в файле. Или SharedPreferences. Или базу данных. - person CommonsWare; 21.09.2012

Обработчики исчезли после перезагрузки. Если вы хотите установить их при загрузке Android, вы можете написать системное приложение, которое всегда запускается при запуске Android.

person m0skit0    schedule 19.09.2012