【问题标题】:AlarmManager firing at wrong timeAlarmManager 在错误的时间触发
【发布时间】:2015-10-07 04:55:46
【问题描述】:

我尝试使用AlarmManager 每天执行一次任务,如下代码所示。

 public void start_alarm(){
    SharedPreferences.Editor editor=alarm_prefs.edit();
    editor.putString("alarm", "alarm");
    editor.apply();
    editor.clear();

    Intent start_alarm=new Intent(MainPage.this,MailService.class);
    PendingIntent pi=PendingIntent.getService(MainPage.this, 100, start_alarm, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

    Calendar calendar = Calendar.getInstance();

    calendar.add(Calendar.DATE,1);
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.AM_PM, Calendar.AM);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*60*24,pi);
}

Alarm 开火没问题。但就像在代码中一样,我在12:30 AM 上设置了警报。但上面的代码会在06:30 AM 触发警报。我在外面做错什么了吗,请通知我。我在12:15 AM 的其他应用程序中设置了闹钟。但它也会在错误的时间触发,即06:15 AM。请帮我解决这个问题。

【问题讨论】:

    标签: android alarmmanager android-alarms repeatingalarm


    【解决方案1】:

    要在12.30 AM设置闹钟,你可以试试这个代码。

    // Set the alarm's trigger time to 12.30 A.M
    calendar.add(Calendar.DATE,1);
    calendar.set(Calendar.HOUR_OF_DAY, 0);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    

    而不是

    calendar.add(Calendar.DATE,1);
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.AM_PM, Calendar.AM);
    

    【讨论】:

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