У меня есть вопрос об обработчиках и их существовании при перезагрузке устройства. Скажем, я выполнил 3 обработчика с задержкой в 3 часа, используя postDelayed()
, я просто хотел знать, если, например, устройство было перезагружено, эти потоки все еще существуют? или мне нужно выполнить их снова?. если да, то как мне автоматически выполнять обработчики после перезагрузки устройства? Я читал некоторые потоки, в которых мне нужно запустить приемник, чтобы запустить службу, но я действительно не понимаю, как это сделать.
Android: существующие обработчики после перезагрузки устройства?
Ответы (2)
я просто хотел знать, если, например, устройство было перезагружено, эти темы все еще существуют?
Нет. В любом случае, они также не будут существовать в течение трех часов, так как Android, скорее всего, сначала завершит ваш процесс. Пожалуйста, используйте AlarmManager
для такой периодической работы.
если да, то как мне автоматически выполнять обработчики после перезагрузки устройства?
Вы не знаете. Однако вы можете использовать BOOT_COMPLETED
BroadcastReceiver
для переназначения будильников в AlarmManager
.
person
CommonsWare
schedule
19.09.2012
хм, да, мое приложение больше похоже на будильник, но я хотел запланировать будильник, скажем, через 3 часа, и я не могу придумать ничего другого, кроме как использовать обработчики для срабатывания будильника точно в нужное время. Вы знаете, как активировать сигнализацию без использования обработчиков? я имею в виду точное срабатывание будильника, например, пользователь выберет / установит время, когда срабатывает будильник?
- person lemoncodes; 19.09.2012
Вы знаете, как активировать сигнализацию без использования обработчиков? -- используйте
AlarmManager
, как я уже писал. я имею в виду точное срабатывание будильника, например, пользователь выберет / установит время, когда срабатывает будильник? -- используйте AlarmManager
, как я уже писал.
- person CommonsWare; 19.09.2012
я запланировал будильник, а также попытался его остановить, но как мне автоматически остановить будильник, скажем, после 3 повторений?..
- person lemoncodes; 19.09.2012
@lemoncodes: позвоните
cancel()
на AlarmManager
после третьего повторения, чтобы отменить существующее запланированное мероприятие.
- person CommonsWare; 19.09.2012
проблема в том, как мне пометить повторы, как узнать или подсчитать повторы, setReapting() возвращает void, где их подсчитывать?
- person lemoncodes; 21.09.2012
@lemoncodes: в файле. Или
SharedPreferences
. Или базу данных.
- person CommonsWare; 21.09.2012
Обработчики исчезли после перезагрузки. Если вы хотите установить их при загрузке Android, вы можете написать системное приложение, которое всегда запускается при запуске Android.
person
m0skit0
schedule
19.09.2012