使用AlarmManager在特定时间段内创建闹钟
问题描述:
是否有任何方法使用AlarmManager在特定时间段内激活闹钟?我有存储在数据库中的开始时间和结束时间值。我想在启动时启动一个闹钟,使设备保持静音,闹钟应该在设备音量恢复正常时的结束时结束。使用AlarmManager在特定时间段内创建闹钟
一种方法是在开始时设置警报&然后在结束时设置另一个警报。但问题是时间段可能重叠,如果我使用2种不同的警报(一个在开始时间,另一个在结束时间),则需要实施额外的逻辑。 Android中有没有适合这种情况的程序?或者实施逻辑是解决这个问题的唯一方法?
答
为什么不只是在您的Intent
中为PendingIntent
传递一个额外的类似于“endTime”长类型的时间来结束警报。 (即时假设其重复)然后在你的广播接收机获得额外的,比较System.currentTimeMillis()
,如果它少于当前时间取消报警和退出?
你能解释一下它是如何解决我目前面临的重叠时隙问题吗? – Khobaib 2012-08-16 21:23:05
我想我不明白这个问题,你能解释一下吗? – Jug6ernaut 2012-08-17 22:03:00
@jugernaut - 用户输入一些时间间隔(开始时间和结束时间),手机将在该时间间隔处于静音模式。问题是 - 假设**用户输入2个间隔,其间隔相互重叠**,即10 AM-12PM和11 AM-2PM。在这种情况下,问题会随着AlarmManager在上午10点执行第一次闹铃而提高,然后在上午11点再次尝试执行静音模式。但电话已经沉默了。在下午12点,手机将在第一个时间间隔内正常工作,但同时,第二个时间间隔会让手机保持沉默,直到下午2点。所以我们需要实现一些逻辑。 – Khobaib 2012-08-18 17:08:09