Android AlarmManager начинает звонить не вовремя - PullRequest
0 голосов
/ 17 октября 2019

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

Я изучил следующие комментарии, но не смог найти решение:

Запускается тревогав неправильное время

AlarmManager срабатывает в неправильное время

AlarmManager работает в неправильное время

КогдаЯ установил время будильника до текущего, оно сразу начинает звонить. Однако, если время будильника установлено после текущего времени, оно работает нормально.

Ниже приведен мой код ...

calendar.set(
             calendar.get(Calendar.YEAR),
                   calendar.get(Calendar.MONTH),
                   calendar.get(Calendar.DAY_OF_MONTH),
                   timePicker.getHour(),
                   timePicker.getMinute(),
                   0
           );
       AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent intent=new Intent(this, AlarmReceiver.class);
        PendingIntent pendingIntent=PendingIntent.getBroadcast(this,0,intent,0);
    alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);

Если пользователь устанавливаетТревога после текущего времени, работает нормально. Однако, если время установлено до текущего времени (для предстоящего дня), звонок немедленно начинается.

Пожалуйста, помогите мне решить эту проблему. Заранее спасибо!

1 Ответ

0 голосов
/ 17 октября 2019

Из документов AlarmManager

Если указанное время срабатывания прошло, срабатывание будильника происходит немедленно.

Ваш календарь настроен на текущий день и, следовательно,будильник срабатывает сразу же, когда время установлено до текущего времени. При использовании будущих дат получите календарь на эту дату и время, а затем установите будильник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...