Android联网时显示进度等待
Android中不知道什么时候加入了,联网不能再UI线程中进行的限制,之前调SDK=8的时候一点问题都没有,到了SDK=17就会报错误。Android做这样的限制肯定是好的,只是对于我这种新手就要纠结一点了。
这些天折腾Android联网的东西比较多,总结一些重要的东西,方便以后使。
将联网写在线程中,前台等待
public class Download extends Activity {
private static final int MESSAGE_OK = 0x0001;
private ProgressDialog progressDialog = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
progressDialog = ProgressDialog.show(HelloXML.this, "下载", "正在下载,请稍候!");
new Thread() {
public void run() {
try {
// 连接网络获取数据
} catch (Exception e) {
// 显示错误提示
//Log.d("TAG",e.toString());
}
Message msg_listData = new Message();
msg_listData.what = MESSAGE_OK;
handler.sendMessage(msg_listData);
}
}.start();
}
private Handler handler = new Handler() {
public void handleMessage(Message message) {
switch (message.what) {
case MESSAGE_OK:
//刷新UI,显示数据,并关闭进度条
progressDialog.dismiss(); //关闭进度条
break;
}
}
};
}
Android中如果UI线程等待时间超过5秒钟,系统就会弹出菜单叫你强制关闭,所以一般情况下涉及到联网,就会涉及到线程。(以上参考)之前看过AsyncTask的一些资料,那个东西还是挺有用的,避免了Thread,Handle复杂的操作。
0 评论 :
发表评论