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 替换的片段