我刚刚使用JodaTime libary制作了简单的应用程序。它没有什么特别的,只计算时间差(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 :(得分:0)
你可以试试这个
public static int diff(int hour1, int hour2) {
if(hour2 < hour1) {
hour2 += 24;
}
return hour2 - hour1;
}