我正在创建一个Android应用程序,我遇到了问题.(我是Android开发的新手)
在我的应用程序中,我想为今天设置闹钟.它适用于此,但我的问题是当我想将时间选择器的时间设置为小于当前时间时,我的警报立即响起.我想为明天的时间设定时间.我怎么做?
Chr*_*dus 17
在设置警报之前,只需检查时间选择器的结果.我不确定你如何设置你的闹钟,或者你甚至使用什么样的闹钟,我会假设在毫秒时间你可以解决它.
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Calendar now = Calendar.getInstance();
Calendar alarm = Calendar.getInstance();
alarm.set(Calendar.HOUR_OF_DAY, hourOfDay);
alarm.set(Calendar.MINUTE, minute);
long alarmMillis = alarm.getTimeInMillis();
if (alarm.before(now)) alarmMillis+= 86400000L; //Add 1 day if time selected before now
setAlarm(alarmMillis);
}
public void setAlarm(long millis) {
/** Set your alarm here */
}
Run Code Online (Sandbox Code Playgroud)
还有很多其他方法可以做到这一点,但我发现Calendar类通常适合初学者的时间操作.希望这可以帮助.
编辑:如果DST是一个问题,一个小编辑将解决问题:
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Calendar now = Calendar.getInstance();
Calendar alarm = Calendar.getInstance();
alarm.set(Calendar.HOUR_OF_DAY, hourOfDay);
alarm.set(Calendar.MINUTE, minute);
if (alarm.before(now)) alarm.add(Calendar.DAY_OF_MONTH, 1); //Add 1 day if time selected before now
setAlarm(alarm.getTimeInMillis());
}
Run Code Online (Sandbox Code Playgroud)
您需要确保正确设置时区.以上代码将使用系统根据您的Android区域设置设置的默认时区.使用Calendar.getInstance(TimeZone区域)获取特定时区中的Calendar对象.
| 归档时间: |
|
| 查看次数: |
5451 次 |
| 最近记录: |