您好,我需要设置 AlarmManager 来提醒我服药。我需要按自定义天数和自定义天数重复它。
那么有没有一种有效的方法来设置AlarmManager或CommonsWare的AlarmManager实现来提醒我“从早上9点开始,接下来的5天每天两次”来提醒我吃药?对于示例代码和相关教程中的任何建设性帮助,请提前提供建议和 tnx。
您好,我需要设置 AlarmManager 来提醒我服药。我需要按自定义天数和自定义天数重复它。
那么有没有一种有效的方法来设置AlarmManager或CommonsWare的AlarmManager实现来提醒我“从早上9点开始,接下来的5天每天两次”来提醒我吃药?对于示例代码和相关教程中的任何建设性帮助,请提前提供建议和 tnx。
I haven't looked into Mark's AlarmManager implementation, but there is no way, in general, to get the bare AlarmManager to do what you are trying to do. You can schedule a single alarm, at a specific time, or a repeating alarm, that repeats at fixed intervals. If you want something that handles complex schedules like the one you describe, you'll have to write or find code that does it.
您想将 PendingIntent 与 AlarmManager 一起使用。这个想法是用alarmManager安排pendingIntent,让它触发一个intentService或广播,用alarmManager为下一个期望的事件设置另一个pendingIntent。您要记住,如果用户重新启动他们的设备,您将需要 BOOT_RECEIVED 权限。我在音频控制中有复杂的调度,这正是我所做的。
这是我的意思的一个相当不错的教程:
http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html
您需要在下次要服药时安排闹钟 - 根据您的算法(例如,如果它每天两次,并且您今天第一次到达待处理的意图回调,那么将下一个闹钟安排到在 [6,7,8,9,10...] 小时后开始)。
您需要将警报启动的上次时间和用户设置保存在共享首选项/文件/数据库中。
您需要停止处理进程(android 将其杀死或设备已重新启动)。在设备重启的情况下,您应该使用启动接收器来启动您的服务,但您需要记住,从 android 3.1 开始,用户必须至少使用一次 GUI 才能拦截启动完成的接收器。启动完成的接收器应该查看上次启动警报的时间,并根据用户设置设置下次启动警报。
在 android 杀死你的服务的情况下,你需要进行研究,我在这里无能为力。