Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

Notification в определённое время - Android

24.04.2015, 11:33. Просмотров 499. Ответов 9
Метки нет (Все метки)

Здравствуйте,
Мне ещё не приходилось делать нотификации, по-этому задаю здесь вопрос.
По туториалам на пндроид-дев страничке вроде понятно, как сделать нотификацию, но вот, как заполнить её нужными данными из записи sqlite базы данных и как сделать, что-бы она запускалась в определённое время, например, за час, до того как произойдёт событие.
Например, я с веб сервиса беру json который подбирает аппликация и сохраняет взятые данные в sqlite базу данных.
Дату с json беру в таком формате - "start_date":"2015-04-20 15:07:00" а в sqlite созраняю как COLUMN_EVENT_START_DATE + " TEXT, ".
Хотелось бы узнать, как сделать что-бы нотификация сработывала в данную дату и,например, за час до начального времени, и правильные ли я использую типы данных, что-бы это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2015, 11:33     Notification в определённое время
Посмотрите здесь:

Android Доступ к Notification из Activity
Android Notification - запуск MainActivity
Уведомления Notification Android
Android Notification с картинкой
Кнопки в Notification Android
Android AlarmManager + Notification
Android Notification когда надо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.04.2015, 12:45     Notification в определённое время #2
edogaafx, AlarmManager Вам в помощь
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
24.04.2015, 12:47  [ТС]     Notification в определённое время #3
YuraAAA, а с типами данных у меня всё в порядке? Т.е. не возникнет проблемы с взятием даты и времени отдельно (т.к. они в одной строке) и тд и тп?
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
24.04.2015, 13:21     Notification в определённое время #4
edogaafx, нет. Её очень легко распарсить с помощью SimpleDateFormat, паттерн будет "yyyy-MM-dd hh:mm:ss"
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
24.04.2015, 16:24     Notification в определённое время #5
AlarmManager после перезагрузки устройства сбрасывается, имей ввиду, BootResiver нужен.
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
24.04.2015, 16:39  [ТС]     Notification в определённое время #6
Уже читал об этом. Возьму на заметку.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
24.04.2015, 17:19     Notification в определённое время #7
Цитата Сообщение от edogaafx Посмотреть сообщение
как сделать что-бы нотификация сработывала в данную дату
Имей ввиду ситуацию, когда аппарат был долго выключен и дата прошла.
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
24.04.2015, 17:55  [ТС]     Notification в определённое время #8
Постараюсь разобраться.
Но может посоветуете (теоретически или какими примерами/туториалами), как это всё дело происходит?
Я на данный момент не понимаю, как работает AlarmManager и в какое время он будет проверять все записи в базе данных, и слать нотификации тогда, когда время записи будет подходящее (n-ое время до начала события)..
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
25.04.2015, 20:19     Notification в определённое время #9
Все просто.
1. Создаешь класс от BroadcastReceiver (необходимо зарегистрировать в манифесте receiver), в нем (в отдельном методе) инициализируешь AlarmManager и определяешь время и период сработки, а также запускаемый им PendingIntent (сервис или активити).
2. Когда срабатывает AlarmManager - запускается сервис или активити, где проверяется БД и запускается Notification.
Поясню зачем создавать отдельный метод в BroadcastReceiver: т.к. запускать его можно и вручную (например из настроек) и при старте системы (@Override onReceive), именно в onReceive и проверяй время сработки, если оно прошло, то прибавляй к нему например 24 ч. пока время не будет больше текущего, а затем вызывай метод с AlarmManager.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2015, 20:54     Notification в определённое время
Еще ссылки по теме:

Notification sound Android
Android Notification в определенное время
Android Notification и выключенный экран
Android Как запустить метод в сервисе, в определённое время?
Android Notification в определенное время суток

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
25.04.2015, 20:54  [ТС]     Notification в определённое время #10
Rube, вроде бы понял.
Думаю, разберусь. Спасибо большое!
Yandex
Объявления
25.04.2015, 20:54     Notification в определённое время
Ответ Создать тему
Опции темы

Текущее время: 00:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru