0

有没有办法在给定时间停止闹钟,例如,我在早上 7:45 开始闹钟,它每 5 分钟重复一次,然后,我想在时间已经早上 8:00 时停止闹钟?

由于警报管理器的 cancel() 方法只接受一个动作(PendingIntent),我该如何处理这个算法

其次,关于服务,我有一个想法,在服务上放置一个检查器或一个 if 语句来检查它是否已经 8:00a,但我不确定服务是否总是在后台运行,如果是这样,这是否意味着它总是检查时间,如果它是早上 8 点?考虑到服务的意义,一旦它开始,除非明确告知这样做,否则我不会停止。

你们中的任何人都知道如何做到这一点,请分享,我现在有点困惑

4

2 回答 2

0

您必须在闹钟第一次启动时启动服务,该服务将在 5 分钟响起闹钟并获取设备时间并将其与停止时间的时间进行比较(意味着早上 8 点)停止您的服务

于 2012-09-14T07:13:25.337 回答
0

为什么不在早上 7 点 45 分使用AlarmManager#setRepeating开始您需要做的任何事情,然后使用 AlarmManager # set设置另一个闹钟来停止之前的闹钟?

AlarmManager#set 只会触发一次,因此您可以使用它取消重复警报

编辑:在 的实现中AlarmManager#set,您将检索重复的警报(AlarmManager#setRepeating)和cancel()

于 2012-09-14T07:27:05.393 回答