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 评论 :
发表评论