警报今天上午12点而不是48小时后被解雇

时间:2015-01-28 18:57:50

标签: android android-alarms

我每隔48小时(即两天)在午夜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小时后起火。

那么我怎样才能在上午12点48小时后开火呢?

1 个答案:

答案 0 :(得分:4)

第一次闹钟响起时,您需要添加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);