BroadcastReceiver и БД

Ответить
Максим Янчий
Сообщения: 77
Зарегистрирован: 21 июл 2013, 17:33

BroadcastReceiver и БД

Сообщение Максим Янчий » 13 ноя 2013, 20:21

Нужно, чтобы BroadcastReceiver постоянно проверял текущее время и сверял его с записями из БД. А если есть совпадение, выдавал уведомление. Как это сделать?
Заранее спасибо за ответ!

Аватара пользователя
BeKZaT
Сообщения: 41
Зарегистрирован: 27 сен 2013, 23:28

Re: BroadcastReceiver и БД

Сообщение BeKZaT » 13 ноя 2013, 20:30

Максим Янчий писал(а):Нужно, чтобы BroadcastReceiver постоянно проверял текущее время и сверял его с записями из БД. А если есть совпадение, выдавал уведомление. Как это сделать?
Заранее спасибо за ответ!
Я не понел ничего :)
Изображение

Максим Янчий
Сообщения: 77
Зарегистрирован: 21 июл 2013, 17:33

Re: BroadcastReceiver и БД

Сообщение Максим Янчий » 14 ноя 2013, 10:23

BeKZaT писал(а):
Максим Янчий писал(а):Нужно, чтобы BroadcastReceiver постоянно проверял текущее время и сверял его с записями из БД. А если есть совпадение, выдавал уведомление. Как это сделать?
Заранее спасибо за ответ!
Я не понел ничего :)
Нужно выдавать уведомление в определенное время. Если время из андроида и записи из БД совпадает выводить уведомление

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: BroadcastReceiver и БД

Сообщение KamiSempai » 14 ноя 2013, 10:48

BeKZaT писал(а):Я не понел ничего :)
Если не "понел", лучше промолчать.

Проверять через определенное время не лучшая идея. Лучше запланировать ближайшую нотификацию через AlarmManger и в момент ее срабатывания, после вывода сообщения, назначить нотификацию на следующее событие.
Имхо, лучше сделать в базе дополнительное поле, отвечающее за то, показывалось сообщение или нет. Тогда при срабатывании AlarmManager можно показать все не показанные сообщения с датой меньше текущей, после чего пометить их как показанные. Это поможет избежать пропадания сообщений назначенных на одно время, а также устранит проблему с выводом сообщений если телефон в это время был выключен.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Максим Янчий
Сообщения: 77
Зарегистрирован: 21 июл 2013, 17:33

Re: BroadcastReceiver и БД

Сообщение Максим Янчий » 15 ноя 2013, 20:00

KamiSempai писал(а):
BeKZaT писал(а):Я не понел ничего :)
Если не "понел", лучше промолчать.

Проверять через определенное время не лучшая идея. Лучше запланировать ближайшую нотификацию через AlarmManger и в момент ее срабатывания, после вывода сообщения, назначить нотификацию на следующее событие.
Имхо, лучше сделать в базе дополнительное поле, отвечающее за то, показывалось сообщение или нет. Тогда при срабатывании AlarmManager можно показать все не показанные сообщения с датой меньше текущей, после чего пометить их как показанные. Это поможет избежать пропадания сообщений назначенных на одно время, а также устранит проблему с выводом сообщений если телефон в это время был выключен.
Прошу прощения, а как проследить когда будет выведено сообщение, чтобы задать новое уведомление?
Заранее спасибо за ответ!

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: BroadcastReceiver и БД

Сообщение KamiSempai » 15 ноя 2013, 23:32

Создается PendingIntent с броадкастом и передается в метод set AlarmManager-a.
Тут показано как это делается http://stackoverflow.com/questions/4459 ... er-example
Только там используется setRepeating вместо set. Думаю, не нужно объяснять чем они отличаются.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Максим Янчий
Сообщения: 77
Зарегистрирован: 21 июл 2013, 17:33

Re: BroadcastReceiver и БД

Сообщение Максим Янчий » 16 ноя 2013, 14:06

KamiSempai писал(а):Создается PendingIntent с броадкастом и передается в метод set AlarmManager-a.
Тут показано как это делается http://stackoverflow.com/questions/4459 ... er-example
Только там используется setRepeating вместо set. Думаю, не нужно объяснять чем они отличаются.
Спасибо большое!

Ответить