面试准备-打卡第九天-Android篇

140 阅读1分钟

什么是AsyncTask?

AsyncTask是一个抽象类,它是由Android封装的一个轻量级异步类,它可以在线程池中执行后台任务,然后把执行的进度和最终的结果传递给主线程并在主线程更新UI

AsyncTask的内部封装了两个线程池(SerialExecutor和THREAD_POOL_EXECUTOR)和一个Handler(InternalHandler)

其中SerialExecutor用于任务的排队,让需要执行的多个耗时任务,按顺序排列,THREAD_POOL_EXECUTOR线程池才真正地执行任务,InternalHandler用于从工作线程切换到主线程

AsyncTask的类声明如下:

public abstract class AsyncTask<Params,Progress,Result>

AsyncTask是一个抽象泛型类,其中,三个泛型参数含义有:

  • Params:开始异步任务执行时传入的参数类型
  • Progress:异步任务执行过程中,返回下载进度值的类型
  • Result:异步任务执行完成后,返回的结果类型

如果AsyncTask确定不需要传递任何参数,三个泛型参数可以用void来代替