2

毎日午前 10 時にトリガーするようにアラームをスケジュールしました。

このアラームを月曜日の午前 12 時に設定しています。

アラーム時刻が過ぎている場合、アラームはすぐにトリガーされます。

しかし、私の要件では、すぐにトリガーしたくありません。翌日の午前 10 時にトリガーしても問題ありません。

以下は、アラームを設定するための現在のコードです。

Calendar activeModeTime = Calendar.getInstance();
    // activeModeTime.setTimeZone(TimeZone.getTimeZone(Constants.TIME_ZONE));
    activeModeTime.set(Calendar.HOUR_OF_DAY,
            mSharedPrefManager.getActiveStartHourPref());
    activeModeTime.set(Calendar.MINUTE,
            Constants.DEFAULT_ACTIVE_START_MINUTE);
    activeModeTime.set(Calendar.SECOND,
            Constants.ALL_START_END_DEFAULT_SECOND);

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            activeModeTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
            getActiveModeAlarmPendingIntent());

どうすればこれを達成できますか。

4

2 に答える 2

5

設定した時間が過去のものかどうかを確認し、過去のものである場合は、トリガー時間に 24 時間を追加します。

if(activeModeTime < System.currentTimeMillis()){
    activeModeTime += AlarmManager.INTERVAL_DAY;
}
于 2015-04-06T11:09:03.393 に答える