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());}