gpt4 book ai didi

android - 当今天设置的时间在 android 中过去时,计算警报的触发时间?

转载 作者:行者123 更新时间:2023-11-29 21:20:38 24 4
gpt4 key购买 nike

在我的闹钟应用程序中,我有以下计算闹钟触发时间的功能,如果闹钟时间 > 当前时间,它的工作完美,但如果闹钟时间已过“今天设置时间已过”当前时间 > 闹钟警报明天应该触发的时间,但在我的功能中,它会在几小时或几分钟后根据差异量在同一天触发。我该如何解决这个问题?如果警报设置时间已过,我应该添加到我的功能中等待明天 24 小时的条件是什么?请帮助我

private long getTriggerTime(int  hour,int minute)
{

long triggerTime = System.currentTimeMillis() ;
Calendar calendarNow = Calendar.getInstance();
int currentHour = calendarNow.get(Calendar.HOUR_OF_DAY);
int currentMinute = calendarNow.get(Calendar.MINUTE);


int HourDifference = currentHour-hour;
int MinuteDifference = currentMinute -minute;

if(HourDifference < 0 ){ HourDifference = HourDifference*(-1); }
if(MinuteDifference < 0){ MinuteDifference = MinuteDifference*(-1); }

triggerTime = triggerTime + ( HourDifference*60*60*1000) + (MinuteDifference*60*1000 );


return triggerTime;
}

这是我如何使用这个功能

 am.setRepeating(AlarmManager.RTC_WAKEUP, getTriggerTime(hour,min),AlarmManager.INTERVAL_DAY ,sender);

注意:时、分采用 24 小时制

最佳答案

如果闹钟时间 > 当前时间,这里是闹钟触发的示例代码,否则它将持续 24 小时......

private long getAlarmTimeInMillis(int  hour,int minute){
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);//
calendar.set(Calendar.SECOND, 0);
if (calendar.getTimeInMillis() < System
.currentTimeMillis()) {
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH)+ 1);
// add 24 hours to the calender.getTimeMillis
}
return calendar.getTimeInMillis();
}

试试这个.....

关于android - 当今天设置的时间在 android 中过去时,计算警报的触发时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com