Создать уведомление каждый день
Я хочу создать уведомление каждый день в 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
Ответ 2
Вам не нужен сервер. Я думаю, что лучший способ реализовать это - использовать AlarmManager.
Пример диспетчера аварийных сигналов