AsyncTask

Posted 放纵的卡尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

片段中的 Asynctask 未到达 onPostExecute

在 AsyncTask 中将新的 TextView 设置为片段

AsyncTask 和 FragmentManager 的问题

用 Asynctask 更新 FragmentTransaction 替换的片段

从Asynctask ONPostExecute调用片段方法

在 Asynctask 的 onPostExecute() 方法中更改片段