1. ホーム
  2. android

[解決済み] アラームは48時間後ではなく、今日の午前12時に発射されます。

2022-02-09 06:06:53

質問

私は48時間後(つまり2日後)の午前0時12分にアラームを作動させています。

以下は私のコードです。

            Calendar calendar = Calendar.getInstance();
            calendar.setTimeInMillis(System.currentTimeMillis());
            calendar.set(Calendar.HOUR,  12); // MIDNIGHT 12 AM
            calendar.set(Calendar.MINUTE,00);
            calendar.set(Calendar.SECOND, 00);

            calendar.getTime().toString();

            dayAlarmMgr.setRepeating(
                    AlarmManager.RTC_WAKEUP, 
                    calendar.getTimeInMillis(),
                    AlarmManager.INTERVAL_DAY * 2,  // EVERY TWO DAYS
                    dayAlarmIntent);

現在、アプリケーションを実行すると、アラームは今日の午前12時に鳴りますが、要件に従って48時間後に鳴るようにする必要があります。

どうすれば48時間後の午前12時だけに発火させることができるのでしょうか?

解決方法は?

アラームが最初に鳴るまでの日数を2日追加する必要があります。 また Calendar.HOUR_OF_DAY の方が分かりやすいので。

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 0); // MIDNIGHT 12 AM
calendar.set(Calendar.MINUTE,00);
calendar.set(Calendar.SECOND, 00);

calendar.add(Calendar.HOUR_OF_DAY, 48);

dayAlarmMgr.setRepeating(
        AlarmManager.RTC_WAKEUP, 
        calendar.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY * 2,  // EVERY TWO DAYS
        dayAlarmIntent);