0

我有一个在固定时间(和日期)开始新课程的意图。此意图从固定日期开始,但也在每次重新启动时(也在过去的日期和时间之后)。在我的代码中,New.class 从 26/12/12 - 21.30 开始,但如果我在那之后重新启动模拟器,New.class 会自动启动。为什么?谢谢!

PS:此代码在 Autostart 类中 (public void onReceive(Context context, Intent intent) {)

Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
cal.set(Calendar.DATE,26);
cal.set(Calendar.MONTH,Calendar.DECEMBER);  
cal.set(Calendar.YEAR,2012);
cal.set(Calendar.HOUR_OF_DAY, 21);  
cal.set(Calendar.MINUTE, 30);       
cal.set(Calendar.SECOND, 00);       

Intent intent3 = new Intent(context, New.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent3, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
4

1 回答 1

1

这是设计使然。请参阅该方法的文档set()

“如果时间发生在过去,就会立即触发警报。”

如果您希望发生这种情况,则不应安排警报。也就是说,您应该检查自己是否set()在 BroadcastReceiver 内调用。

于 2012-12-27T09:52:02.310 回答