Android 警报过早发出

Android 警报过早发出,android,alarmmanager,Android,Alarmmanager,我正试着发出警报通知 我面临的问题是它过早地发出通知 我真的需要从日期和时间选择器获取日期和时间 我不知道我的代码出了什么问题。这是我的代码: MainActivity.java Alarm.java广播接收器 public class Alarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(

我正试着发出警报通知

我面临的问题是它过早地发出通知

我真的需要从日期和时间选择器获取日期和时间

我不知道我的代码出了什么问题。这是我的代码:

MainActivity.java

Alarm.java广播接收器

public class Alarm extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Yeah", Toast.LENGTH_SHORT).show();
        try {
            Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
            Ringtone r = RingtoneManager.getRingtone(context, notification);
            r.play();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
我试过一些解决办法,但没有用


谢谢

您的cal_new可能正在使用onTimeSet外部的小时和分钟变量进行初始化。请尝试重命名参数。

问题是您正在设置month-1,希望获得从1到12的值。为了与日历兼容,OnDate的月份已更改为0到11

无需修改您获得的月份,将其设置为alarm manager,如下所示:

cal_new.set(Calendar.MONTH, month);

检查

否,未更改某些内容:为什么要将第一个月设置为报警管理器?你在试什么日期?你能更具体地说明被解雇的时间有多早吗?在日历月中,从0开始,所以一月不是1,而是0,这就是为什么。我制作了一个便笺应用程序,此应用程序应提供记住通知。我已制作了第1个月,以获得0到11,当我祝酒时,它会告诉我正确的日期。请查看指向文档的链接,并查看该月的描述。我不明白你的意思。只是用你需要更改的行编辑了答案。当我删除-1时,现在是错误的日期12月,绝对没有通知
cal_new.set(Calendar.MONTH, month);