@carlo.***merata
Существует несколько способов реализации reminder в Android. Один из самых распространенных - использование AlarmManager с уведомлениями.
- Создайте класс для управления reminder'ами, например ReminderManager:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class ReminderManager {
public static void setReminder(Context context, Class<?> cls, int hour, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(context, cls);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
public static void cancelReminder(Context context, Class<?> cls) {
Intent intent = new Intent(context, cls);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
}
}
|
- Создайте класс BroadcastReceiver для обработки событий reminder'ов, например ReminderReceiver:
1
2
3
4
5
6
7
|
public class ReminderReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Здесь можно реализовать логику создания уведомления
}
}
|
- Зарегистрируйте ReminderReceiver в вашем AndroidManifest.xml:
1
|
<receiver android:name=".ReminderReceiver" />
|
- В вашей активности (или в другом месте) вызовите метод setReminder() ReminderManager для установки reminder'а:
1
|
ReminderManager.setReminder(this, ReminderReceiver.class, hour, minute);
|
- Для отмены reminder'а вызовите метод cancelReminder() ReminderManager:
1
|
ReminderManager.cancelReminder(this, ReminderReceiver.class);
|
Обратите внимание, что передайте правильные значения часов и минут при установке reminder'а. Не забудьте также добавить разрешение RECEIVE_BOOT_COMPLETED в вашем AndroidManifest.xml, чтобы при запуске устройства восстанавливать reminder'ы.