Создать уведомление каждый день

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

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

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

Ответ 1

Используйте 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