Я воспользовался следующей ссылкой https://developer.android.com/training/scheduling/alarms.html.Настройка уведомления с помощью AlarmManager путем передачи calendar.getTimeInMillis(), инициирует уведомление немедленно не в назначенное время
Первый код RTC, чтобы установить будильник в течение определенного времени в течение всех дней. Даже после того, как он будет следовать одному и тому же коду, будильник не запускается в момент его запуска. Вместо этого notification
запускается сразу после установки времени, которое выполняется с помощью таймера. Ниже мой фрагмент кода,
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent intentalarm = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,4);
calendar.set(Calendar.MINUTE, 30);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentalarm);
Вместо setRepeating
я также попытался setInexactRepeating
, но не было luck.I также не хотел бы добавить, что, когда я изменил
calendar.getTimeInMillis()
и используется SystemClock.elapsedRealtime() + 120 * 1000
сигнализация срабатывает точно после 2 минуты с момента его установки.
Но когда используется calendar.getTimeInMillis()
, предполагаемая работа не происходит, а происходит немедленное срабатывание.
Было бы очень полезно, если кто-нибудь может помочь мне найти решение. Только для заметки я мог бы узнать, установлен ли будильник до текущего времени устройства, будильник будет срабатывать немедленно, но здесь это не так.
NotificationReceiver.class
работает нормально, поскольку он сгенерирован и отображается в названии. Но время, о котором идет речь, вызывает беспокойство.