首页 > 代码库 > AsyncTask

AsyncTask

说明:一个轻量级的异步框架,这个框架封装的比较diao,所以参数穿插的太厉害。很难说清楚。下面的代码对参数进行了说明。

new AsyncTask<Integer, Integer, Integer>() {

            @Override
            protected void onPreExecute() {// 执行前准备-主线程

            }

            @Override
            protected Integer doInBackground(Integer... args) {// 后台执行--子线程
                int result=0;
                for (int i = args[0]; i <=args[1]; i++) {
                    SystemClock.sleep(20);
                    result=i;
                    publishProgress(result,88);//这个方法把result传递给onProgressUpdate的参数
                }

                return result;
            }

            @Override
            protected void onProgressUpdate(Integer... values) {// 更新进度-主线程
                //这个方法接收第二个参数的类型;接收的数据是publishProgress方法中的参数;
                
                mTv.setText(values[0]+":"+values[1]);
            }

            @Override
            protected void onPostExecute(Integer result) {// 结果回调--主线程
                //后台线程执行完毕后,返回的值到这个方法的参数中来
                mTv.setText(result+"");
                
            }

        }.execute(0, 100);// 这里的是第一个参数的类型(传入参数---->后台线程参数)

 

AsyncTask