Java AlarmManager第二天不开火
我已经设置了AlarmManager的特定时间和更新时间,当旧的一个被解雇。但问题是AlarmManager并没有在下一个日期触发,但若我手动更改日期,则其工作,但若自动更改,则不会触发Java AlarmManager第二天不开火,java,android,alarmmanager,Java,Android,Alarmmanager,我已经设置了AlarmManager的特定时间和更新时间,当旧的一个被解雇。但问题是AlarmManager并没有在下一个日期触发,但若我手动更改日期,则其工作,但若自动更改,则不会触发 AlarmManager alarm = (AlarmManager) context.getSystemService(context.ALARM_SERVICE); Intent intent = new Intent(context, BrSendSMS.class); intent.p
AlarmManager alarm = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
Intent intent = new Intent(context, BrSendSMS.class);
intent.putExtra("schedulesmsid", schedulesmsid);
int schedulelistid = -1;
try
{
schedulelistid = Integer.valueOf(schedulesmsid);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, schedulelistid, intent, Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
alarm.cancel(pendingIntent);
alarm.set(AlarmManager.RTC_WAKEUP, scheduledtime, pendingIntent);
} catch (NumberFormatException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
尝试使用setRepeating 使用下面的代码
Calendar alarmTime=Calendar.getInstance();
alarmTime.set(Calendar.HOUR_OF_DAY,18);
alarmTime.set(Calendar.MINUTE, 0);
alarmTime.set(Calendar.SECOND, 0);
Intent alarmIntent = new Intent(MainActivity.this,AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, alarmIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Long time = alarmTime.getTimeInMillis() + (24 * 60 * 60 * 1000 * 2);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time,24 * 60 * 60 * 1000 * 2, pendingIntent);
我希望它能对您有所帮助。您如何更新警报时间?在我的广播接收器中,我正在设置新时间您确定日期有效吗?另一个可能的问题:您是否正在关闭设备?如果设备关闭,警报将被终止,因此您需要启动完成的接收器。日期是有效的,因为如果我仅手动更改其工作状态和设备id,我希望它在特定时间重复。我可以知道重复的时间间隔吗?取决于每日、每周或每月的重复类型、触发时间、间隔时间、,intervalMillis根据您自己的时间间隔设置持续时间我不想让同一台启动,比如说我想设置3天的sms计划。所以,当第一个是火灾时,我取消所有警报并设置新的警报