AlarmManager未在指定时间触发警报

时间:2013-01-16 13:49:38

标签: android

我正在使用以下代码在特定日期和时间发出警报。

mCalendar.setTimeInMillis(System.currentTimeMillis());
mCalendar.set(Calendar.YEAR, 2013);
mCalendar.set(Calendar.MONTH, 0);
mCalendar.set(Calendar.DAY_OF_MONTH, 16);
mCalendar.set(Calendar.HOUR_OF_DAY, 1);
mCalendar.set(Calendar.MINUTE, 30);
mCalendar.set(Calendar.SECOND, 0);
mCalendar.set(Calendar.MILLISECOND, 0);
new ReminderManager(this).setReminder(info.id, mCalendar);

ReminderManager.setReminder功能是:

public void setReminder(Long taskId, Calendar when) 
{       
    Intent i = new Intent(mContext, OnAlarmReceiver.class);
    i.putExtra(DataBaseHelper.KEY_ROWID, (long)taskId);
    PendingIntent pi = PendingIntent.getBroadcast (mContext,0,i,PendingIntent.FLAG_ONE_SHOT);
    mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi); 
}

它无法正常工作,当我在我的应用程序中按“Put Reminder”菜单项时,闹钟响起,而不是我指定的时间。

1 个答案:

答案 0 :(得分:2)

你确定日期是将来吗?

我没有检查过,但如果您尝试过去设置闹钟,这可能是设计行为......

2013-JAN-16 1:30对我来说似乎过去了(至少在我的时区)。