Service, BroadcastReceiver и их SharedPreferences
Добавлено: 30 сен 2013, 11:45
Всем доброго времени суток =) Постарался изложить как можно яснее свою проблему )
Описание:
Пользователь заходит в приложение, указывает какое-то время. Ему через это время выкидывается какое-либо сообщение (не суть).
Задача:
Сделать так, чтобы сообщение вывелось именно через время, указанное пользователем. Вдобавок, если пользователь выключает устройство и включает его - ПРОДОЛЖАЕТСЯ отсчет времени или же высвечивается сообщение о финише таймера. Более того, сделать процесс неубиваемым (кроме удаления самого приложения, конечно) =)
Как пытаюсь делать я:
Почитав о таймерах, алармах и прочих инструментах, я решил использовать следующую схему:
Когда пользователь настроил нужное кол-во времени - в SharedPreferences (sPref) записывается текущее время и время, когда нужно "появиться" сообщению. Этот sPref я передаю фоновому сервису (запускающемуся по аларму каждые n миллисекунд, дабы презреть свое состояние убиваемости) и бродкасту (тому, что срабатывает после ребута). После ребута бродкаст снова запускает сервис с временем, которое у него отложилось.
Проблема:
В бродкасте интент от SharedPreferences - null, и я не знаю что с этим поделать..К тому же хочу избежать записи времени на карту памяти или как-то вне рамках приложения..
Народ, помогите кто в теме - уже кучу времени убил на такую "простенькую" задачу
Описание:
Пользователь заходит в приложение, указывает какое-то время. Ему через это время выкидывается какое-либо сообщение (не суть).
Задача:
Сделать так, чтобы сообщение вывелось именно через время, указанное пользователем. Вдобавок, если пользователь выключает устройство и включает его - ПРОДОЛЖАЕТСЯ отсчет времени или же высвечивается сообщение о финише таймера. Более того, сделать процесс неубиваемым (кроме удаления самого приложения, конечно) =)
Как пытаюсь делать я:
Почитав о таймерах, алармах и прочих инструментах, я решил использовать следующую схему:
Когда пользователь настроил нужное кол-во времени - в SharedPreferences (sPref) записывается текущее время и время, когда нужно "появиться" сообщению. Этот sPref я передаю фоновому сервису (запускающемуся по аларму каждые n миллисекунд, дабы презреть свое состояние убиваемости) и бродкасту (тому, что срабатывает после ребута). После ребута бродкаст снова запускает сервис с временем, которое у него отложилось.
Проблема:
В бродкасте интент от SharedPreferences - null, и я не знаю что с этим поделать..К тому же хочу избежать записи времени на карту памяти или как-то вне рамках приложения..
Народ, помогите кто в теме - уже кучу времени убил на такую "простенькую" задачу