android AsyncTask

  PageTask task = new PageTask();
  task.execute();

  class PageTask extends AsyncTask<String, Integer, String> {
       
        public PageTask(Context context){
        }
        @Override
        protected String doInBackground(String... params) {
            try{
               //获取数据代码
            } catch(Exception e) {
               e.printStackTrace();
            }
            if(获取数据成功)
            {
                return "SUCCESS";
            }
            else
            {
                return "FAILURE";
            }
        }

        @Override
        protected void onCancelled() {
            super.onCancelled();
        }

        @Override
        protected void onPostExecute(String result) {
            if(result.equals("SUCCESS"))
            {
                //更新UI
            }
            else
            {
                //错误提示
            }
        }

        @Override
        protected void onPreExecute() {
            
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
        }
     }

问题:

按下按钮联网获取数据绑定listview卡在那里,过一段时间才跳到下个画面。

解决方法:

1,可以把获取数据的操作放到doInBackground(String... params)里面做。

2,doInBackground(String... params)方法执行结束之后,自动调用onPostExecute(String result)方法,所以可以在这个方法里把取得的数据绑定到listview。

这样的做法就是不会按下按钮卡在那里,过一段时间才跳到下个画面,而是先跳到下个画面在取得数据,这样便提高了APP可用性。

 

posted @ 2012-12-14 17:41  水上叶  阅读(139)  评论(0)    收藏  举报