阻止android本机时间选择器一天中几个小时的问题

阻止android本机时间选择器一天中几个小时的问题,android,timepicker,Android,Timepicker,我计划将时间选择器阻塞到特定的开始时间和结束时间。为此,我正在设置TimeChangedListener并重写onTimeChanged方法。下面是onTimeChanged()上的实现 方法调用并获取堆栈溢出异常。bot工作正常(与预期的一样),持续数小时更新。 因此,如果有人查看代码片段并发现问题,请告诉我。 任何帮助都将不胜感激 提前谢谢。我认为这是更新时间(curHour,curMin)的问题;或onTimeChanged(时间选择器视图,int hourOfDay,int minute

我计划将时间选择器阻塞到特定的开始时间和结束时间。为此,我正在设置TimeChangedListener并重写onTimeChanged方法。下面是onTimeChanged()上的实现

方法调用并获取堆栈溢出异常。bot工作正常(与预期的一样),持续数小时更新。 因此,如果有人查看代码片段并发现问题,请告诉我。 任何帮助都将不胜感激


提前谢谢。

我认为这是更新时间(curHour,curMin)的问题;或onTimeChanged(时间选择器视图,int hourOfDay,int minute);android OS-v2.3.6及以下版本中的方法。因为当我在安卓OS-v3.1及以上版本的设备上测试时,它的工作状态良好。但在OS-v2.3.6及以下版本中,当我调用updateTime(curHour,curMin)时;大约10分钟后,onTimeChanged只需要9分钟就可以接到电话。所以,当我在最短的几分钟后到达最短的几小时时,它将继续循环

所以它是一个更新时间(curHour,curMin);或onTimeChanged(时间选择器视图,int hourOfDay,int minute);android OS-v2.3.6及以下版本中的方法

@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
//;super.onTimeChanged(view, hourOfDay, minute);
 try{
   boolean flag = true;

   if (hourOfDay <= maxHour && hourOfDay >= minHour) {
     if (hourOfDay == maxHour && hourOfDay == minHour) {
       if (minute > maxMin)
          flag = false;
       else if (minute < minMin)
        flag = false;
       else if (minute == maxMin && minute == minMin) {
        flag = false;
       } else if (minute == maxMin) {
          flag = false;
       } else if (minute == minMin) {
          flag = false;
       }
    } else if (hourOfDay == maxHour) {
       if (minute > maxMin)
       {
        flag = false;
       }
    } else if (hourOfDay == minHour) {
       if (minute < minMin)
         flag = false;
    }

   if (flag) {
      curHour = hourOfDay;
      curMin = minute;    
   } else {
      updateTime(curHour, curMin);

   }
 //(curYear, curMonth);
 } else {
    updateTime(curHour, curMin);
 }
//view.updateDate(curYear, curMonth, curDay);
 } catch (Exception e) {
     Log.e("CustomTimePicker","error");
   }
}
   updateTime(curHour, curMin);