警报时间之前的警报

时间:2013-09-25 11:29:30

标签: android time notifications

请帮助我们我创建一个闹钟项目,我有一个问题。

这是我需要在当前时间之前设置闹钟的问题,如果现在时间是下午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

2 个答案:

答案 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

然后你只需要设定时间。