Android AlarmManager在错误的时间触发

Android AlarmManager在错误的时间触发,第1张

概述我正在设置警报,警报管理器将在下午6点运行.如果已经是下午6点,我希望它在第二天下午6点运行. AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Calendar calendar = Calendar.getInstance(); if( 我正在设置警报,警报管理器将在下午6点运行.如果已经是下午6点,我希望它在第二天下午6点运行.

AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);        Calendar calendar = Calendar.getInstance();        if(calendar.get(Calendar.HOUR_OF_DAY) < 18) {            calendar.set(Calendar.HOUR,18);            calendar.set(Calendar.MINUTE,0);        } else {            // Set sync time            calendar.add(Calendar.DATE,1);            calendar.set(Calendar.HOUR,0);        }               Intent alarmIntent = new Intent(context,AlarmReceiver.class);          alarmIntent.putExtra("syncmode","upload");        PendingIntent pendingIntent = PendingIntent.getbroadcast(context,alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);        manager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);

我有6个AndroID平板电脑都运行相同的确切代码,有些在正确的时间醒来,有些则在几小时后运行.我检查了时区,一切都匹配. AlarmManager的文档说使用UTC时间设置警报,但实际上我使用的是当地时间,正在工作的是正确的时间.其他人在时间前4小时开火.我究竟做错了什么?

编辑:我无法回答我自己的问题所以,我设置Calendar.HOUR而不是HOUR_OF_DAY导致时间设置不正确.

解决方法 这样就可以从“未答复”列表中删除:

I was setting Calendar.HOUR instead of HOUR_OF_DAY which was causing the time to be set incorrectly.

总结

以上是内存溢出为你收集整理的Android AlarmManager在错误的时间触发全部内容,希望文章能够帮你解决Android AlarmManager在错误的时间触发所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1126454.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存