请帮助我们我创建一个闹钟项目,我有一个问题。
这是我需要在当前时间之前设置闹钟的问题,如果现在时间是下午1:00生病设置为上午10:00所以基本上它还有18个小时和闹钟时间前59分钟,问题是你的问题设置闹钟,如上午10:00,下午1:00,它会在你点击确定后报警
if (setHour < c.get(Calendar.HOUR_OF_DAY)
|| setHour == c.get(Calendar.HOUR_OF_DAY)
&& setMinute < c.get(Calendar.MINUTE)) {
c.set(Calendar.HOUR_OF_DAY, setHour);
c.set(Calendar.MINUTE, setMinute);
c.set(Calendar.SECOND, 0);
client.setAlarmNotification(c, requestCode);
}
setHour来自timepicker和setMinute。 Requestcode是唯一的,因为它来自数据库中的id(PrimaryKey)所以没有问题,当你在当前时间之后但不是在当前时间之前报警时,它都有效。伙计们,请帮我解决这个问题几天了。提前谢谢你
-raphaelle
答案 0 :(得分:0)
据我了解,您只需要为第二天设置闹钟。
Calendar c = Calendar.getInstance();
if (setHour < c.get(Calendar.HOUR_OF_DAY)
|| setHour == c.get(Calendar.HOUR_OF_DAY)
&& setMinute < c.get(Calendar.MINUTE))
{
c.set(Calendar.HOUR_OF_DAY, setHour);
c.set(Calendar.MINUTE, setMinute);
c.set(Calendar.SECOND, 0);
long time = c.getTimeInMillis();
time = time + 1000*60*60*24; // Add 24h to the date
c.setTimeInMillis(time);
client.setAlarmNotification(c, requestCode);
}
答案 1 :(得分:0)
将日历设置为您想要使用的时间和日期,而不是仅设置时间。
Calendar c= Calendar.getInstance();
c.set(year,month,day,hour,minute);
client.setAlarmNotification(c, requestCode);
注意:月份为0到11不是1到12
如果你只想明天发出警报,那么就像这样在日历上添加一天:
c.add(Calendar.DATE,1); // Add one day to the calendar
然后你只需要设定时间。