Страница 1 из 1

BroadcastReceiver и БД

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

Re: BroadcastReceiver и БД

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

Re: BroadcastReceiver и БД

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

Re: BroadcastReceiver и БД

Добавлено: 14 ноя 2013, 10:48
KamiSempai
BeKZaT писал(а):Я не понел ничего :)
Если не "понел", лучше промолчать.

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

Re: BroadcastReceiver и БД

Добавлено: 15 ноя 2013, 20:00
Максим Янчий
KamiSempai писал(а):
BeKZaT писал(а):Я не понел ничего :)
Если не "понел", лучше промолчать.

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

Re: BroadcastReceiver и БД

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

Re: BroadcastReceiver и БД

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