gpt4 book ai didi

java - 处理程序未给出确切的时间间隔

转载 作者:行者123 更新时间:2023-12-01 05:01:23 24 4
gpt4 key购买 nike

在我的应用程序中,我使用处理程序来更新日期和时间。它更新日期和时间,但没有给出准确的结果。就像如果我设置在 60 秒后更新,它会在 62 秒后更新。如果我将其更新为 120 秒,它将在 2 分 2 秒后更新。请帮助我为什么说话时间更长?我的代码是

public static String interval = "60";

Handler h2 = new Handler();
Runnable run = new Runnable() {
@Override
public void run() {
MyLocation loc = new MyLocation(getBaseContext());
TextView longitude_view = (TextView) findViewById(R.id.GPS_Long_txta);
((TextView) longitude_view)
.setText(" " + String.valueOf(loc.gps_lon));
TextView latitude_view = (TextView) findViewById(R.id.GPS_Lat_txta);
((TextView) latitude_view).setText(" " + String.valueOf(loc.gps_lat));
long delaytime = (RestoreRecord0()*1000);
last_update_time_txtbx = (TextView) findViewById(R.id.last_update_time_txt);
last_update_time_txtbx.setText(" "
+ String.valueOf(java.text.DateFormat.getDateTimeInstance()
.format(Calendar.getInstance().getTime())));
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String response = CallWebService(tm.getDeviceId(), loc.gps_lon, loc.gps_lat);
h2.postDelayed(this, delaytime);
}
};

这是一个方法RestoreRecord0

public int RestoreRecord0() {
try {

File dir = getFilesDir();
File file = new File(dir, Saveinterval);
if (!file.exists()) {
return Integer.parseInt(interval);
}

FileInputStream fileIS = new FileInputStream(file);
BufferedReader buf = new BufferedReader(new InputStreamReader(
fileIS));
String readString = new String();
String data = "";
// just reading each line and pass it on the debugger

while ((readString = buf.readLine()) != null) {
data += readString;
}

return Integer.parseInt(data);
}

catch (Exception ex) {
ex.getMessage();
}

return Integer.parseInt(interval);
}

请帮忙。如何定期且准确地更新时间?

最佳答案

如果你真的希望实时更新,有很多事情是不正确的并且不会达到预期的结果,因为:

  1. 由于固有的框架代码,通过Handler发生的所有更新都必然会出现一些延迟
  2. 您的处理程序代码太困惑了。请简化一下。

我可以在处理程序方面推荐什么:

  1. 不必执行所有 findViewById 等操作 - 已准备好引用,只需对所有 TextView 执行 setText 即可
  2. 这也意味着删除文件操作 - 如果您不希望它长期存在,不确定它有何帮助;然后使用 handler.sendMessage 它有 2 个 Object 类型,您可以在其中设置任何自定义 DataModel 并传递更新时间 - 效率也更高

关于java - 处理程序未给出确切的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com