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