我刚开始使用Android的闹钟服务。我想创建一个药物提醒,它是药物信息和每天重复通知的次数作为输入数据。但是,我只想在上午7点到晚上7点之间启用通知。因此,这些应用程序将仅在该时间内通知,并且这些应用程序也将在上午7点开始通知。
示例:如果用户希望每天从应用程序中重复3次通知,则应用程序将每4小时通知他们服药一次(12小时/ 3次= 4小时)。
我已经尝试过使用while循环,但是如果条件为真,它就不会按我预期的那样工作,即使现在还不是时候,它也会一直保持通知状态(这发生在我的代码中)。
所以,这是我尝试做的:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 7);
while(calendar.get(Calendar.HOUR_OF_DAY) >= 0) {
while (calendar.get(Calendar.HOUR_OF_DAY) >= 7 && calendar.get(Calendar.HOUR_OF_DAY) <= 19) {
// the process here
}
calendar.add(Calendar.HOUR_OF_DAY, 1);
}
很抱歉,我的代码在很多方面都缺乏。但是,我真的希望你们能帮助我或与我分享任何其他可能的解决方案。谢谢。
答案 0 :(得分:0)
您设置的日历小时不正确。
替换
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 7);
while(calendar.get(Calendar.HOUR_OF_DAY) >= 0) {
while (calendar.get(Calendar.HOUR_OF_DAY) >= 7 && calendar.get(Calendar.HOUR_OF_DAY) <= 19) {
// the process here
}
calendar.add(Calendar.HOUR_OF_DAY, 1);
}
使用
Calendar cc = Calendar.getInstance();
int mHour = cc.get(Calendar.HOUR_OF_DAY);
if (mHour >= 7 && mHour <= 19) {
// the process here
}