AlarmManager стреляет не вовремя

Я пытался выполнять какую-то задачу один раз в день, используя AlarmManager как в следующем коде.

 public void start_alarm(){
    SharedPreferences.Editor editor=alarm_prefs.edit();
    editor.putString("alarm", "alarm");
    editor.apply();
    editor.clear();

    Intent start_alarm=new Intent(MainPage.this,MailService.class);
    PendingIntent pi=PendingIntent.getService(MainPage.this, 100, start_alarm, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

    Calendar calendar = Calendar.getInstance();

    calendar.add(Calendar.DATE,1);
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.AM_PM, Calendar.AM);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*60*24,pi);
}

Alarm не выпустил никаких проблем в этом. Но как в коде я установил будильник на 12:30 AM, Но приведенный выше код вызывает тревогу в 06:30 AM, Я делаю что-то не так, пожалуйста, сообщите мне. Я установил сигналы тревоги в другом приложении в 12:15 AM, Но это также стреляет в неправильное время, т.е. 06:15 AM, Пожалуйста, помогите мне с этим.

1 ответ

Для установки будильника на 12.30 AM Вы можете попробовать этот код.

// Set the alarm's trigger time to 12.30 A.M
calendar.add(Calendar.DATE,1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);

вместо

calendar.add(Calendar.DATE,1);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
Другие вопросы по тегам