我是安卓系统警报服务的新手。我想创建一个药物提醒,它是药物信息和每天重复通知的次数作为输入数据。然而,我只想在早上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);
}
如果我的代码在很多方面都有所欠缺,我很抱歉。但是,我真的希望你们能帮助我或与我分享任何其他可能的解决方案。非常感谢。
您设置的日历小时不正确。
更换
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
}