Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
edogaafx
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 42
#1

Notification в определённое время - Программирование Android

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

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

Notification в определенное время
Проблема вызова Notification при помощи AlarmManager. public void...

Notification в определенное время суток
Я создал уведомление, которое срабатывает по нажатию кнопки, сразу. Что нужно...

Как запустить метод в сервисе, в определённое время?
Как запускать метод в сервисе, с понедельника по пятницу в определённое время?...

Кнопки в Notification
Всем привет. Подскажите где подсмотреть решение. В уведомлении от своего...

Notification и таймер
Здравствуйте! Бьюсь с одной задачей. Запускаю обычный таймер с таким кодом:...

Notification sound
private void sendNotification(String greetMsg) { Intent resultIntent...

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

AlarmManager + Notification
Взялся за создания Нотификаций в определённое время. До этого такого ещё такого...

Уведомления Notification
как вызвать новое активити через уведомление ?

Notification с картинкой
Как рисовать во всем поле сообщения? В прямоугольнике в слайд-панели. Много раз...

Notification когда надо
Надо сделать показ Notification в указаное время....Понимаю что роботать надо с...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru