如何在特定时间自动 enable/disable 推送通知
How to automatic enable/disable push notification for certain time
我刚开始使用 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);
}
如果我的代码在很多方面都欠缺,我深表歉意。但是,我真的希望你们能帮助我或与我分享任何其他可能的解决方案。谢谢。
您设置的日历小时不正确。
替换
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
}
我刚开始使用 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);
}
如果我的代码在很多方面都欠缺,我深表歉意。但是,我真的希望你们能帮助我或与我分享任何其他可能的解决方案。谢谢。
您设置的日历小时不正确。
替换
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
}