[英]Android AlarmManager starts ringing on wrong time
我正在尝试创建一个警报应用程序。 我正在使用时间选择器从用户那里获取闹钟时间设置
我研究了以下评论,但找不到解决方案:
当我将闹钟时间设置在当前时间之前时,它会立即响起。 但是,如果闹钟时间设置在当前时间之后,则可以正常工作。
以下是我的代码...
calendar.set(
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),
timePicker.getHour(),
timePicker.getMinute(),
0
);
AlarmManager alarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent=new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent=PendingIntent.getBroadcast(this,0,intent,0);
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);
如果用户在当前时间之后设置闹钟,则可以正常工作。 但是,如果时间设置在当前时间之前(下一天),则响铃会立即开始。
请帮我解决这个问题。 提前致谢!
来自 AlarmManager 文档
如果规定的触发时间已经过去,则立即触发警报。
您的日历设置为当天,因此当时间设置为当前时间之前时,闹钟会立即响起。 使用未来日期时,获取该日期和时间的日历,然后设置闹钟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.