我对 Android 编程很陌生,我现在有一个小问题。
我正在构建一个应该定期从西门子 PLC 中的数据库获取数据的应用程序。对于不同的数据类型,我在选项卡视图中有不同的选项卡。现在,我尝试仅在选项卡处于活动状态时更新每个选项卡的特定数据。现在我使用 onTabChanged 方法更新它们,每次更改一次。这工作正常。
现在我尝试了几种定期更新的解决方案(比如这个或这个),但我无法让它工作。“最佳”解决方案是使用 wil(true) 语句,它使数据每 5 秒更新一次,但它没有更新 UI,也没有离开循环,除非我强制关闭应用程序。
就我得到正确答案而言,我的问题是,我想在我的主线程中更新 UI。我有一个从 PLC 读取数据的函数和一个将数据写入选项卡项目的函数。读取函数需要从“登录活动”作为 Intent 传递的类中的数据,因此我可以在调用 Intent 之前调用它,该 Intent 位于包含 tabview 的活动的 oncreate 方法中。
只要选项卡处于活动状态,是否有可能执行代码行,这些代码行现在在 ontabchanged 中运行良好,每 5 秒一次?如前所述,我有一个读取需要从意图移交的类文件的函数,以及一个写入数据的函数。它看起来像这样的自动取款机:
Bundle data = getIntent().getExtras();
final Login_Data logindata = data.getParcelable("logindata");
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if (tabId == "Anzeige1") {
Anzeigedatenlesen(logindata);
Anzeigeschreiben();
} else if (tabId == "Anzeige2") {
System.out.println("Anzeige2");
} else if (tabId == "Anzeige3") {
System.out.println("Anzeige2");
}
}
});