Я программировал на Android более года, но раньше не использовал уведомления, которые мне нужны для одного из моих приложений.Отображение нескольких уведомлений в определенные пользователем моменты
В приложении есть события, которые могут быть установлены в разное время. Очевидно, пользователь может изменить это время или добавить/удалить события.
Я планирую использовать оповещения, чтобы уведомить пользователя за 5 минут до начала их мероприятия.
Я прочитал документы разработчиков Android для Building a Notification и Services (к чему я также не знаком). Я решил использовать Service
, потому что я решил, что уведомление нужно будет показать, даже если приложение не работает. Чтобы помочь мне, я имею в виду один конкретный SO answer в качестве руководства.
Я начал экспериментируя немного с классами уведомления строителя в моем NotificationService
классе так:
public class NotificationService extends IntentService {
private static final int NOTIFICATION_ID = 1;
public NotificationService() {
super(NotificationService.class.getSimpleName());
}
@Override
protected void onHandleIntent(Intent intent) {
showNotification();
}
private void showNotification() {
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
this, NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setContentTitle("Test notification")
.setSmallIcon(R.drawable.ic_event_black_24dp)
.setContentText("Test description")
.setContentIntent(pendingIntent);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.notify(NOTIFICATION_ID, builder.build());
}
}
Я также использую следующие, чтобы начать этот Service
в заставке моего приложения:
Intent serviceIntent = new Intent(this, NotificationService.class);
startService(serviceIntent);
Чтобы отображать уведомления в определенное время, я читал около AlarmManager
, главным образом через SO questions like this one. Я также знаю, что для отображения нескольких уведомлений мне нужны разные идентификаторы уведомлений (например, моя константа NOTIFICATION_ID
).
Однако я не уверен в динамическом обновлении времени, когда уведомления будут отображаться каждый раз, когда событие добавляется, удаляется или изменяется время.
Может ли кто-нибудь предоставить мне некоторые рекомендации о том, как я мог бы это достичь?
Благодарим вас за подробный ответ, Амир. Я попытаюсь выполнить это и сообщить, если у меня возникнут дополнительные вопросы. –
@ FarbodSalamat-Zadeh полная реализация может быть найдена по адресу: https://github.com/blanyal/Remindly – Amir
Еще раз спасибо - просто чтобы подтвердить, мне еще нужен мой класс 'Service', который я создал ранее? –