【问题标题】:alarmmanager (show class after every reboot)警报管理器(每次重新启动后显示类)
【发布时间】:2012-12-27 17:52:02
【问题描述】:

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

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    这是设计使然。见documentation of the set() method

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多