java - 安排多个重复警报

标签 java android repeatingalarm

抱歉我的英语不好。 目前我正在使用二维码扫描仪进行项目。我正面临这个错误。当应用程序扫描二维码时,它应该安排重复的警报。它工作得很好,但如果我给警报管理器提供例如 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/

相关文章:

java - 使用 lambda 计算列表中的列表

java - 重构 java 代码 - arraylist 包含 if/else

java - 是否可以在 Android WebKit 浏览器中运行 Java 小程序?

android - 安装应用程序后安排每日警报

java - JFrame 不显示来自 JLabel 的图片

java - 单击 jButton 时如何更改单个椭圆的颜色?

android - 谷歌地图 - 底部有标记的相机位置

Android:LinearLayout$LayoutParams.<init> 上的 java.lang.NoSuchMethodError

android - 在android中每周重复一次闹钟

android - AlarmManager 在超过同一天设置的时间触发警报,setRepeating