java - 设置日期时,警报管理器不会触发通知
问题描述
我正在尝试在特定日期和时间设置通知。
仅当我将日历值设置为小时和分钟而不是日期时,通知才有效。这是我的代码中的示例
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.YEAR, 2019);
cal1.set(Calendar.MONTH, 10);
cal1.set(Calendar.DAY_OF_MONTH, 24);
cal1.set(Calendar.HOUR_OF_DAY, 10);
cal1.set(Calendar.MINUTE, 30);
cal1.set(Calendar.SECOND, 0);
long time = cal1.getTimeInMillis();
AlarmManager alarmManager =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent notificationIntent = new Intent(context, AlarmReceiver.class);
notificationIntent.putExtra(AddReminder.REMINDER_ID, Integer.toString(ID));
PendingIntent broadcast = PendingIntent.getBroadcast(context, 100, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, time, broadcast);
我究竟做错了什么?
解决方案
Java 日历月份从 0 开始,因此如果您希望 10 月为月份,它将是 9 而不是 10
cal1.set(Calendar.MONTH, 9);
推荐阅读
- java - 如何在用户输入中指定每个组基的元素数量?
- android - 使用 Camera2 API Kotlin 单击图像时出现白色图像
- sql - 通过检测名称动态填充 SQL 表?
- git - 在长期运行的樱桃采摘分支中禁用整个合并
- mysql - macOS:zsh:找不到命令:mysqldump
- python-3.x - 异常值:_getfullpathname:路径应该是字符串、字节或 os.PathLike,而不是列表
- php - (已解决)无法让 php 与 nginx 一起运行//无论我尝试什么,我都会得到 502 Bad Gateway
- python - 想要使用嵌套字典在输出控制台打印内部字典的所有键和值
- flutter - 抛出异常时,快照会包含错误吗?
- batch-file - 当我调用一个应该启动一个程序的函数时,为什么我的所有程序都打开了?