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

}