2013-01-16 48 views
1

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

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); 
} 

其工作不正常,报警,当我按我的应用程序不是我指定的时间内“将提示”菜单项熄灭。

回答

2

你确定日期是未来吗?

我没有检查这一点,但也许这就是设计的行为,如果你试图建立一个报警过去......

2013-JAN-16 1:30看起来像过去对我来说(至少在我的时区)。

+0

根据我的时区日期是未来,但我的模拟器和系统显示由于日光节约1小时的差异。 – user1554693

+1

感谢您的帮助,在模拟器上设置正确的时间已经解决了我的问题。 – user1554693