ProgressDialog progressDialog = null; public static final int MESSAGETYPE = 0; private void execute() { try { progressDialog = ProgressDialog.show(context "请稍等...", "数据正在加载中......", true); new Thread(new Runnable() { @Override public void run() { //请求网络数据加载实现代码 Message msg_netData = new Message(); msg_netData.obj = dropList;//传送数据 msg_netData.what = MESSAGETYPE; operate.sendMessage(msg_netData); } }).start(); } catch (Exception e) { e.printStackTrace(); } } private Handler operate = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGETYPE: progressDialog.dismiss(); break; default: break; } } };
线程通信必须放在线程内,否则不会提前弹出进步条,也就是这段代码必须放在线程内
Message msg_netData = new Message();
msg_netData.obj = data;
operate.sendMessage(msg_netData);
如果放在线程外,只会等到所有的数据加载完后同步到界面上显示。