首页 > 解决方案 > 设置日期时,警报管理器不会触发通知

问题描述

我正在尝试在特定日期和时间设置通知。

仅当我将日历值设置为小时和分钟而不是日期时,通知才有效。这是我的代码中的示例

    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);

我究竟做错了什么?

标签: javaandroidandroid-studio

解决方案


Java 日历月份从 0 开始,因此如果您希望 10 月为月份,它将是 9 而不是 10

cal1.set(Calendar.MONTH, 9);

推荐阅读