您好,我需要将AlarmManager设置为运行提醒,以便我服用药物。我需要通过自定义天数和自定义次数来重复这一天。
那么,有没有一种有效的方法来设置AlarmManager或CommonsWare的AlarmManager实现来提醒我“每天两次,从早上9点开始,持续5天”来提醒我服药?请提前提供建议和tnx,以便在示例代码和相关教程中获得建设性帮助。
发布于 2013-02-06 23:41:50
我还没有研究过Mark的AlarmManager实现,但是一般来说,没有办法让空的AlarmManager去做您想做的事情。您可以在特定时间安排单个警报,也可以安排按固定时间间隔重复的重复警报。如果你想要像你描述的那样处理复杂时间表的东西,你必须编写或找到能做到这一点的代码。
发布于 2013-02-07 01:29:15
您希望在AlarmManager中使用PendingIntent。其思想是使用alarmManager调度pendingIntent,使其触发intentService或广播,使用alarmManager为下一个所需事件设置另一个pendingIntent。您需要记住,在用户重新启动设备的情况下,您将需要BOOT_RECEIVED权限。我在音频控制中有复杂的日程安排,这正是我所做的。
这里有一个相当不错的教程来说明我的意思:
http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html
发布于 2013-02-08 00:10:46
根据您的算法,您需要计划下一次要服药时的警报(例如,如果一天两次,并且您今天第一次到达挂起的意图回调,然后计划下一次警报在6,7,8,9,10之后开始...小时)。
您需要将上次启动警报的时间和用户设置保存在共享的首选项/文件/DB中。
你需要处理掉进程(android杀死了它或者设备被重启了)。在设备重新启动的情况下,您应该使用启动接收器来启动您的服务but you need to remember that from android 3.1 the user has to use at least one time the GUI in order for you to intercept the boot completed receiver。启动完成的接收器应查看上一次警报启动的时间,并根据用户设置设置下一次警报启动。
在android杀死你的服务的情况下,你需要做调查,我在这里无能为力。
https://stackoverflow.com/questions/14732776
复制相似问题