Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Alarmmanager.setRepeating触发器立即重复_Android_Alarmmanager - Fatal编程技术网

Android Alarmmanager.setRepeating触发器立即重复

Android Alarmmanager.setRepeating触发器立即重复,android,alarmmanager,Android,Alarmmanager,这是我的密码: cal.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, hourOfDay, minute,Calendar.SECOND); Intent intent=new Intent(FaceActivity.this,AlarmReceiver.class); PendingIntent pendingIntent=PendingIntent.getBroadcast(FaceActivity.th

这是我的密码:

cal.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH, hourOfDay, minute,Calendar.SECOND);

Intent intent=new Intent(FaceActivity.this,AlarmReceiver.class);
        PendingIntent pendingIntent=PendingIntent.getBroadcast(FaceActivity.this, 0, intent, 0);
        AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
这里hourOfDay是当前时间的一小时后。分钟可能具有相同的值

现在,这里的cal.getTimeInMillis()是为超过当前时间一小时的时间设置的。 但当我运行此代码时,广播接收器会立即被调用。 谁能告诉我,我做错了什么?
提前感谢…

终于发现了我的错误,我得到了
的错误值

通过使用下面的代码,它工作得非常好

cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), hourOfDay, minute,cal.get(Calendar.SECOND));

显示您在
cal
中设置时间的代码。我猜
cal.getTimeInMillis()
是过去的时间。代码提供的信息不多。:)Log
System.currentTimeMillis()
cal.getTimeInMillis()
。然后比较结果。@mmohsinnaem Time After Setting(573):日历时间为-62130303706613当前时间为1350281798450日历时间为当前时间的2分钟o。。。?API显示
如果时间发生在过去,报警将立即触发……。
。那么问题出在哪里?@MMohsinNaeem实际上,如果当前时间是上午11:55,而我将警报设置为上午11:58,那么它应该只在上午11:58触发。但在这里它会触发两次,一次是11:55,然后是11:58