[Android]AsyncTask的一些总结

一、什么是AsyncTask

轻量级异步类,本质上就是封装了Handler和线程池的异步框架,只能做耗时较短的。

二、AsyncTask的使用方法

1、三个参数:1所要传入的参数,2显示的进度,3当任务执行完毕后范围的类型

2、五个方法:onPreExecute()-UI线程调用,doInBackground()-做耗时操作,并用publishProgress方法显示进度,调用onProgressUpdate,onProgressUpdate()-动态显示进度条,onPostExecute()-耗时操作完毕后执行

三、AsyncTask内部原理

1、本质是一个静态的线程池,AsyncTask派生出的子类可以实现不用的异步任务,这些任务都是提交到静态的线程池中执行。

2、线程池中的工作线程执行doInBackground(mParams)方法执行异步任务。

3、当任务状态改变之后,工作线程会向UI线程发送消息,AsyncTask内部的InternalHandler相应这些消息,并调用相关回调函数。

四、注意事项

跟Handler一样,Activity销毁,而AsyncTask还在执行一些耗时操作。内存泄漏解决方法可查看Handler文章。并且我们应该调用AsyncTask的cancel()方法来保证正常工作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注