在将警报管理器与 sqllite 数据库中的值结合起来时,我需要一些帮助。在我的数据库中,我存储了一个带有 start_lesson (float) 列的时间表。我想从数据库中获取该值并在 star_lesson 前 5 分钟发送一条消息。Star_lesson 可能是这样的(9.30、10.20 等)。
它需要检查一整天的课程是否开始(并在 5 分钟前发送通知)。
所以我的问题是我该怎么做?
提前致谢 ;)
在将警报管理器与 sqllite 数据库中的值结合起来时,我需要一些帮助。在我的数据库中,我存储了一个带有 start_lesson (float) 列的时间表。我想从数据库中获取该值并在 star_lesson 前 5 分钟发送一条消息。Star_lesson 可能是这样的(9.30、10.20 等)。
它需要检查一整天的课程是否开始(并在 5 分钟前发送通知)。
所以我的问题是我该怎么做?
提前致谢 ;)
我会编写一个函数来读取您的数据库,找到最紧迫的事件,然后使用 AlarmManager 在 T-5 分钟触发 PendingIntent。
PendingIntent 将启动一个 BroadcastReceiver,它将检查数据库中所有在接下来的五分钟内到期的事件,并以您认为合适的任何方式通知用户。
BroadcastReceiver 然后会调用上述函数来安排下一个警报。
此外,所有可能改变数据库的函数也应该调用这个函数来处理任何可能的调度变化。
您还应该编写一个由 BOOT_COMPLETED 广播触发的 BroadcastReceiver 并将调用该函数。这样可以确保在设备重新启动时一切都能正常重新启动。