alarmmanager(每次重启后显示类)

时间:2012-12-26 21:22:43

标签: android alarmmanager

我的意图是在固定的时间(和日期)开始一个新课程。这个意图从固定日期开始,但也在每次重启时开始(也在日期和时间过去之后)。在我的代码中,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);

1 个答案:

答案 0 :(得分:1)

这是设计的。请参阅documentation of the set() method

"如果时间过去,将立即触发警报。"

如果你想要这样做,你就不应该安排闹钟。也就是说,您应该检查自己是否在BroadcastReceiver中调用set()