runonuiThread UI 循环
runonuiThread UI loop
这是我的代码
我想显示进度对话框,直到收到来自服务器的数据,
当我从服务器得到结果时(如果 items.size>0),progressdialog 将被关闭;
但是我 运行 这段代码,我从服务器接收数据但是在 运行onuiThread 中,仍然是 运行ning progressdialog。
List<ServerData> items = new ArrayList();
progressdialog.show();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
HttpRequest...
Gson gson = new Gson();
Type type = new TypeToken<List<ServerData>>(){}.getType();
items = gson.fromJson(String,type);
Log.d("ThreadInfo","" + items.size);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(items.size > 0){
progressdialog.dismiss();
}
}
});
}
});
当我记录 ThreadInfo 时,它发送 items.size 值为 1
但进度对话框仍然 运行ning 并且没有消失。
问题,
当 items.size 不为 0 时如何关闭进度对话框?
如果你有什么想法,请帮助我。
你必须像这样更改你的代码
if (items.size > 0) {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressdialog.dismiss();
}
});
}
这是我的代码
我想显示进度对话框,直到收到来自服务器的数据, 当我从服务器得到结果时(如果 items.size>0),progressdialog 将被关闭; 但是我 运行 这段代码,我从服务器接收数据但是在 运行onuiThread 中,仍然是 运行ning progressdialog。
List<ServerData> items = new ArrayList();
progressdialog.show();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
HttpRequest...
Gson gson = new Gson();
Type type = new TypeToken<List<ServerData>>(){}.getType();
items = gson.fromJson(String,type);
Log.d("ThreadInfo","" + items.size);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(items.size > 0){
progressdialog.dismiss();
}
}
});
}
});
当我记录 ThreadInfo 时,它发送 items.size 值为 1 但进度对话框仍然 运行ning 并且没有消失。
问题, 当 items.size 不为 0 时如何关闭进度对话框?
如果你有什么想法,请帮助我。
你必须像这样更改你的代码
if (items.size > 0) {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressdialog.dismiss();
}
});
}