2012-12-11 4 views
4

방금 ​​JodaTime 라이브러리를 사용하여 간단한 앱을 만들었습니다. 그것은 특별한 것은 없으며 시간 차이 (24 시간) 만 계산하여 화면에 출력합니다. 예를 들어 21시와 03시 사이의 차이는 6 시간입니다. 특별한 앱이 아닙니다.버튼을 클릭하면 약간의 지연이 발생합니다.

하지만 문제가 있습니다. "계산"버튼을 클릭하면 약간의 비정상적인 지연이 발생합니다. 그 버튼을 클릭하면 에뮬레이터에서 "계산"하는 데 3 초가 걸립니다. 내 전화기에는 초의 절반이 걸립니다. 그러나 계산이 순간적이지 않다는 것을 알 수 있습니다. 하지만 두 번째 시간을 계산할 때 아무런 문제없이 즉시 실행됩니다. 실제 전화 및 에뮬레이터에서. 누군가가 무엇이 잘못 될 수 있다고 말할 수 있습니까? 다음은 내 onClick 코드입니다 (활동 내에서 뷰에 대한 참조 만 있음). 내가 아는 한 객체에 문제가있어 메모리에로드해야합니까? 왜냐하면 그들은 메모리에 존재할 때 지체가 없기 때문입니다. 더 이상 지연되지 않도록 코드를 어떻게 향상시킬 수 있습니까?

@Override 
public void onClick(View ClickedView) { 

    hour1 = Integer.parseInt(field_hour1.getText().toString()); 
    hour2 = Integer.parseInt(field_hour2.getText().toString()); 



    if(hour2 < hour1) { 

     dt1 = new DateTime(2012, 10, 10, hour1, 00); 
     dt2 = new DateTime(2012, 10, 10+1, hour2, 00); 
     diff = Hours.hoursBetween(dt1, dt2); 


    } else { 
     dt1 = new DateTime(2012, 10, 10, hour1, 00); 
     dt2 = new DateTime(2012, 10, 10, hour2, 00); 
     diff = Hours.hoursBetween(dt1, dt2); 

     } 


    result.setText(""+diff.getHours());} 

답변

0

public static int diff(int hour1, int hour2) { 
    if(hour2 < hour1) { 
     hour2 += 24; 
    } 
    return hour2 - hour1; 
} 
을 시도 할 수 있습니다
관련 문제