Android 仅在开始和结束时间之间运行代码

Android 仅在开始和结束时间之间运行代码,android,Android,我希望能够设置服务执行部分代码的时间。它通过AlarmManager定期运行,当它运行时,我希望它只在窗口之间执行一些代码,比如上午10点到下午2点(或10点到14点) 我创建了一个TimePickerDialog,它从两个按钮的OnClick开始,“开始时间”和“结束时间”。查看“开始时间”案例,代码如下: 时间选择器对话框代码: public void showTimePickerDialog(View v) { Calendar dateTimeStart = Calendar.getIn

我希望能够设置服务执行部分代码的时间。它通过AlarmManager定期运行,当它运行时,我希望它只在窗口之间执行一些代码,比如上午10点到下午2点(或10点到14点)

我创建了一个
TimePickerDialog
,它从两个
按钮的
OnClick
开始,“开始时间”和“结束时间”。查看“开始时间”案例,代码如下:

时间选择器对话框代码:

public void showTimePickerDialog(View v) {
Calendar dateTimeStart = Calendar.getInstance();

new TimePickerDialog(this, t, dateTimeStart.get(Calendar.HOUR_OF_DAY), dateTimeStart.get(Calendar.MINUTE), DateFormat.is24HourFormat(this)).show();
}

TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                startTime = new Time();
                startTime.hour = hourOfDay;
                startTime.minute = minute;
                startButton.setText(new StringBuilder().append(startTime));
}
setText
方法让我看到我正在处理什么样的数据-这是一种
Time
格式,其输出类似于
19700101T100000America/Toronto(0,0,,-154000)

我一直在使用
Calendar
类,而不是
Time
类,它更健壮

因此,我知道它在设置
T
之后的时间,但是我很难从中获得一个可读的
10:00
来显示给用户,也很难使用设置的时间作为运行代码的时间点

  • 如何设置用户输入时间(即10:00)的格式,以便与当前时间进行比较
  • 如何比较格式正确的时间

  • 谢谢你的帮助。

    我使用的解决方案是使用
    时间选择器对话框
    小时
    分钟
    中的整数

    由于它们是整数,因此很容易将它们与通过以下方式找到的当前时间的小时和分钟的其他整数进行比较:

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(New Date());
    int hour = calender.get(Calendar.HOUR_OF_DAY);
    int minute = calendar.get(Calendar.MINUTE);
    
    在我看来,这是应对时代最简单的方法