因为会在互联网上经常获取数据,所以如果采用同步数据加载的话,那么会严重影响美观,那样用户体验很差
大数据加载之前 要等半天 并且屏幕是白的 用户会觉得没有加载,加个进度条 数据加载成功 ,进度条就消息。
ProgressDialog
progressDialog = null;//首先定义一个dialog
public static final int MESSAGETYPE = 0;//申明一个静态常
private void execute() {
try {
// String dropList = requestCmd("474");
progressDialog = ProgressDialog.show(Balance.this.getParent(),
"请稍等...", "数据正在加载中......", true);
new Thread(new Runnable() {
@Override
public void run() {
//请求网络数据加载实现代码
Message msg_netData = new Message();
msg_netData.obj = dropList;//传送数据
msg_netData.what = MESSAGETYPE;
}
}).start();
} catch (Exception e) {
e.printStackTrace();
}
}
private Handler operate = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.what) {
case MESSAGETYPE:
progressDialog.dismiss();
break;
default:
break;
}
}
};
线程通信必须放在线程内,否则不会提前弹出进步条,也就是下嘛这段代码必须放在线程内
Message msg_netData = new Message();
msg_netData.obj = dropList;
operate.sendMessage(msg_netData);
如果放在线程外,只会等到所有的数据加载完后同步到界面上显示。
学习更多Android,可以关注http://blog.youkuaiyun.com/qq_28514109