警报管理器立即触发

时间:2016-07-12 13:33:53

标签: android alarmmanager

我知道这个问题已被多次询问并回答过,我确实查了很多帖子并尝试了所有这些帖子,但有些我现在仍然遇到麻烦。

我的代码就像:

cal = Calendar.getInstance();
    cal.setTime(CalendarUtils.getDateFromString(objScheduleDO.ScheduleStartTime, CalendarUtils.TIME_FORMAT));
    LogUtils.debug("Time",cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));
    am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis() , pi);

我使用RTC_WAKEUP它立即触发,如果我使用ELAPSED_REALTIME_WAKEUP它根本不会发射。

我确定开始时间永远不是当前时间,它始终是未来时间。

TIME_FORMAT是" hh:mm aa"。我进一步验证了时间是正确的,但是当我尝试通过调试获得cal.getTimeInMillis()时,我收到的是一个整数值而不是long,不确定Android Studio调试模式是否可以给出长值。

请帮助..

1 个答案:

答案 0 :(得分:2)

根据AlarmManager set method

  

如果规定的触发时间是过去的,则会立即触发警报。

确认您的日期未过去。