AsyncTask是android中异步任务类,可以直接更新UI线程。功能和Thread+Handler一样,但要注意,AsyncTask一般为几秒种地耗时操作,可以说为轻量级的。如遇到长时间的耗时操作,建议使用java.util.concurrent
包下的线程池的操作Executor
, ThreadPoolExecutor
和 FutureTask.
AsyncTask一般定义三种参数 Params
, Progress
和
Result
,四个回调方法 onPreExecute
, doInBackground
, onProgressUpdate
和 onPostExecute
。其中
Params为AsyncTask对象的execute(Params...)注意,此方法必须在主线程中调用。接着执行AsyncTask内定义的重写的方法
onPreExecute()
, onPostExecute(Result)
, doInBackground(Params...)
, onProgressUpdate(Progress...)
注意:
次任务只能执行一次
doInBackground(Params...)返回执行结果给onPostExecute(Result)方法
doInBackground(Params...)调用
publishProgress(Progress...),会回调onProgressUpdate(Progress...)更新进度