4

JodaTime ライブラリを使用して簡単なアプリを作成しました。特別なことは何もせず、時差(24時間)を計算して画面に出力するだけです。たとえば、21 時間と 03 時間の差は 6 時間です。特別なことは何もなく、アプリは動作します。

しかし、私には問題があります。「計算」ボタンをクリックすると、異常な遅延が発生します。ボタンをクリックすると、エミュレータで「計算」するのに3秒かかります。私の電話では、0.5秒ほどかかります。しかし、計算がすぐにできるわけではないことがわかります。しかし、2回目を計算したいときは、問題なく瞬時に実行できます。実際の電話とエミュレーターで。誰かが何が間違っているのか教えてもらえますか? これが私の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());}
4

1 に答える 1

0

これを試すことができます

public static int diff(int hour1, int hour2) {
    if(hour2 < hour1) {
        hour2 += 24;
    }
    return hour2 - hour1;
}
于 2012-12-11T11:24:36.650 に答える