2013-05-10 2 views
10

Я хочу создать уведомление каждый день в 8:00. У меня есть данные в базе данных SQLite, и каждый день в это время я хочу получить данные от него и создать уведомление от него. Создание нового уведомления не проблема, но как я могу отображать его каждый день в это время?Создать уведомление каждый день

Я думаю, что мне нужно работать с Сервисом, но как я могу сообщить системе, чтобы начать эту услугу в особый момент? И какую услугу я должен использовать? Я думаю, что если система вызывает службу, она запускает определенную функцию, где я могу запустить свой код для подключения к базе данных и создать и отправить мое уведомление в систему правильно?

Что я не могу понять, если я зарегистрирую услугу в своей основной деятельности, почему система может запустить службу, если пользователь закрывает мое приложение? Может ли кто-нибудь объяснить это мне? Я всегда думаю, что если моя основная деятельность уничтожена, служба также будет уничтожена.

+2

Использование alarmManager. – wtsang02

+0

http://stackoverflow.com/questions/4430849/how-to-set-recurring-alarmmanager-to-execute-code-daily –

+0

http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling -recurring-tasks/ –

ответ

6

Используйте класс Alarm manager и размещайте уведомление в категории NotifyService. Это будет ежедневно подавать сигнал тревоги в 8 утра:

Intent myIntent = new Intent(Current.this , NotifyService.class);  
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 08); 
calendar.set(Calendar.MINUTE, 00); 
calendar.set(Calendar.SECOND, 00); 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours 
+0

У меня одинаковые настройки, но я получаю уведомление каждый час, а не один раз в день. – Roon13

+0

Это будет работать, пока пользователь не перезагрузит свой телефон. Чтобы поддерживать работу AlarmManager даже после перезагрузки, проверьте этот пост http://stackoverflow.com/questions/12512717/android-alarmmanager-after-reboot –

+1

То же самое здесь ... Он не отправляется один раз в день, но каждый раз я открываю приложение – Si8

2

Вам не нужен сервер. Я думаю, что лучший способ реализовать это - использовать AlarmManager.

Alarm Manager Example

+0

смена опечатки AlertManager to AlarmManager –

Смежные вопросы