我刚刚使用 JodaTime 库制作了简单的应用程序。它没有什么特别的,只计算时间差(24 小时制)并在屏幕上输出。例如,21 点和 03 点之间的时差是 6 小时。没什么特别的,应用程序可以正常工作。
但是我有一个问题。当我点击“计算”按钮时,我遇到了一些不寻常的延迟。就像当我单击按钮时,需要 3 秒才能在模拟器上“计算”。在我的手机上,它需要半秒的时间。但是你可以看到计算不是即时的。但是当我想第二次计算时,它立即就没有问题了。在实际手机和模拟器上。有人可以告诉我可能出什么问题了吗?这是我的 onClick 代码(在 Activity 中我只有对 View 的引用)。据我所知应该是对象的问题..加载到内存中?因为当它们存在于内存中时没有延迟。我怎样才能改进我的代码以便不再有任何延迟?
@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());}
你可以试试这个
public static int diff(int hour1, int hour2) {
if(hour2 < hour1) {
hour2 += 24;
}
return hour2 - hour1;
}
我是一名优秀的程序员,十分优秀!