我想更新UI以在Android中显示一些更新的数组数据。数组数据的计算有时会花费很长时间。
在完全完成更新后,UI应代表数据。这是我尝试的代码:
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
// Reload page data
pageReloadData();
handler.post(new Runnable() {
public void run() {
// UI update
if (data != null){
expandableListViewReload();
}
}
});
}
};
Thread t = new Thread(r);
t.start();
但是它不能正常工作。有人帮我!
答案 0 :(得分:0)
问题是您需要在UI线程上运行UI更改,而不是刚创建的线程。
您可以使用runOnUiThread
完成此操作。
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
// Reload page data
pageReloadData();
runOnUiThread(new Runnable() {
public void run() {
//Do something on UiThread
// UI update
if (data != null){
expandableListViewReload();
}
}
});
}
};
Thread t = new Thread(r);
t.start();