«

Android AsyncTask

时间:2024-3-2 19:00     作者:韩俊     分类: Android


AsyncTask 确实简单易用,基本上写登陆,注册这种简单的网络访问,可以使用它,但对于多线程这个确实不太好。关于AsyncTask的优缺点可以百度搜索下。
下面是具体的一个实例
1. 新建一个自己的AsyncTask类 就是继承AsyncTask
2. 在合适的地方执行AsyncTask类

 private class DelAsyncTask extends AsyncTask<String, Integer, String> {
        @Override  
        protected void onPreExecute() {  
            // onPreExecute方法用于在执行后台任务前做一些UI操作  
        }  
        @Override
        protected String doInBackground(String... params) {
             // doInBackground方法内部执行后台任务,不可在此方法内修改UI  
            String urlStr = new UrlsString().affectionAddUrl +
                    "?user_tel=" + params[0] + "&" +
                    "relation_tel=" + params[1] ;
            String resonseStr = new BasicHttpClient().httpGet(urlStr); // httpGet请求,方法我自己封装了一下
            if(resonseStr == null){
                return "0";
            }
            return resonseStr ;
        }
        @Override
        protected void onPostExecute(String rs) {
            // onPostExecute方法用于在执行完后台任务后更新UI,显示结果 
            if(rs.equals("0")) {
                ToastUtil.showToast(getActivity(),"操作失败");
            }else if(rs.equals("1")){ // 删除成功
                List<AffectionTmp> tmp = mList2 ;
                mList2 = new AffectionUtils().deleteposition(tmp, selected_position);
                mAdapter.setmList(mList2);
                listgoodfeel.setAdapter(mAdapter);
            }
        }
        @Override
        protected void onProgressUpdate(Integer... values) {
            // onProgressUpdate方法用于更新进度信息
            super.onProgressUpdate(values);
        }
        @Override  
        protected void onCancelled() {
            // onCancelled方法用于在取消执行中的任务时更改UI
            super.cancel(false);
       }
    }
new DelAsyncTask().execute(mList2.get(pos).getUserTel() ,mList2.get(pos).getAffectionTel() ); // 传3个String值,按照自己的需求来

AsyncTask执行的时候把需要的参数传进去就行了,然后 doInBackground(String… params){} 这里得到参数,并且得在这里执行相应的网络访问,并返回结果;接着void onPostExecute(String rs) {}中得到自己上面返回的结果进行相应的UI处理和页面跳转。
注意不能在doInBackground 里面进行UI操作,这样会出错

标签: android

热门推荐