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复杂的操作。

Related Articles

Quote Of The Day