gpt4 book ai didi

java - 安排多个重复警报

转载 作者:行者123 更新时间:2023-12-01 17:51:32 26 4
gpt4 key购买 nike

抱歉我的英语不好。目前我正在使用二维码扫描仪进行项目。我正面临这个错误。当应用程序扫描二维码时,它应该安排重复的警报。它工作得很好,但如果我给警报管理器提供例如 3 个警报。例如现在是 12:00,第一个警报在 11:00,第二个警报在 12:30,第三个警报在 13:00。它们都不会触发。这是我的测试代码。重复和计数器是从 0 开始的全局变量。也没有错误,我尝试打印每个结果来测试它,但我真的没有看到逻辑错误。请帮助,谢谢。因此,如果我不放置这部分代码,它就可以工作。

if (System.currentTimeMillis() > cal.getTimeInMillis()){
TimeUntilTrigger = cal.getTimeInMillis() + 86400000;

}else{
TimeUntilTrigger = cal.getTimeInMillis();

}

这是我的完整测试代码。

AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
repetition+=3;
while (counter<repetition){

cal.set(Calendar.HOUR_OF_DAY,10);
cal.set(Calendar.MINUTE,55+counter*2);
timeDatabase.insertData(result.getContents(),String.valueOf(10),String.valueOf(55+counter*2));
long TimeUntilTrigger;
if (System.currentTimeMillis() > cal.getTimeInMillis()){
TimeUntilTrigger = cal.getTimeInMillis() + 86400000;

}else{
TimeUntilTrigger = cal.getTimeInMillis();

}

Intent alarmIntent = new Intent(getActivity(), AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(getActivity(),counter,alarmIntent,0);


manager.setRepeating(AlarmManager.RTC_WAKEUP,TimeUntilTrigger,AlarmManager.INTERVAL_DAY,pendingIntent);

counter++;
}

最佳答案

我解决了这个问题。问题是您需要设置秒和毫秒。

cal.set(Calendar.HOUR_OF_DAY,13);
cal.set(Calendar.MINUTE,51+counter*2);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);

关于java - 安排多个重复警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60786675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com