美文网首页
AsyncTask异步任务

AsyncTask异步任务

作者: A_Coder | 来源:发表于2016-09-25 18:54 被阅读0次

构建AsyncTask子类的参数

AsyncTask<Params, Progress, Result>是一个抽象类,通常用于被继承,继承AsyncTask需要指定如下三个泛型参数。

params:启动任务是输入参数的类型;

progress:后台任务执行中返回;

Result:后台执行任务完成后返回结果的类型;

构建AsyncTask子类的回调方法

doInbackGround:必须重写,异步执行后台线程将要完成的任务;

OnPreExecute:执行后台耗时操作前被调用,通常完成一些初始化操作;

OnPostExecute:当doInBackground完成后,系统自动调用该方法,并将doInBackground方法返回的值传递给该方法;

OnProgressUpdate:在doInBacground()方法调用publicProgress()方法更新任务的执行进度后,就会触发该方法;


结束AsyncTask:

当进度条在加载更新是退出Activity,需要让AsynTask的生命周期跟Activity的生命周期保持一致。

//Activity.class

@ovrrived

public void pause(){

      super.pause();

     if(mAsyncTask != null   &&  mAsyncTask.getStatus() == AsyncTask.status.Running)  {

                     mAsyncTask.cancel(true);

             }

}.

//将对应的AsyncTask标志为Cancel状态,并不是真正的取消,故需要在doInBackground()判断cancel状态

//AsyncTask子类

public void doInBackground(void...params) {

      ...

     if(isCancel()) {

           return;

     }

     mProgress.setProgress(params[0]);

}

//这样就能尽早结束当前线程的任务

注:AsyncTask底层是通过线程池进行调用的

相关文章

  • AsyncTask相关面试题

    什么是AsyncTask? AsyncTask(异步任务类),比Handler更轻量,更适合简单的异步操作内部实现...

  • AsyncTask 源码分析

    AsyncTask 的使用 Android 提供 AsyncTask 处理异步任务,基于异步消息处理机制,本质上是...

  • 异步任务AsyncTask

    为甚么要异步任务? 1.Android是单线程模型2.耗时操作要放在非主线程里面执行 构建Asynctask子类的...

  • 异步任务-- AsyncTask

    一、为什么要异步任务?Android单线程模型耗时操作放在非主线程中 二、异步加载最常用的两种方式多线程/线程池A...

  • AsyncTask异步任务

    AsyncTask 1.简介 AsyncTask允许你执行后台耗时操作,并将结果发布到UI线程。整个实现过程不需要...

  • AsyncTask异步任务

    基本用法 AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它。在继承时我们可以为A...

  • AsyncTask异步任务

    实现异步任务的方法:1.定义一个类,继承AsyncTask,同时声明三个泛型public class MyTask...

  • AsyncTask异步任务

    构建AsyncTask子类的参数 AsyncTask 是一个抽象类,通常用于被继承,继承AsyncTask需要指定...

  • 异步任务 AsyncTask

    为什么要异步任务 android单线程模型。 耗时操作放在非主线程中执行。 AsyncTask为何而生 子线程中更...

  • 异步任务-AsyncTask

    为什么要使用异步任务 android单线程模型 耗时操作放在非主线程执行 AsyncTask为何而生 子线程中更新...

网友评论

      本文标题:AsyncTask异步任务

      本文链接:https://www.haomeiwen.com/subject/zrpfyttx.html