AsyncTask是一个在不需要开发者直接操作多线程和 Handler 的情况下的帮助类,适用于短时间的操作(最多几秒)。 如需长时间的线程操作,建议使用多线程包 java.util.concurrent
中的功能,比如线程池。
3个范型参数:Params
(传入参数类型), Progress
(进度类型)和 Result
(执行结果类型)。
4个步骤方法:
onPreExecute()
UI线程执行,可以在这先渲染一个进度条doInBackground(Params... params)
子线程执行耗时的异步任务,中间结果用publishProgress发送到UI线程onProgressUpdate(Progress... values)
UI线程执行。负责处理中间进度信息的可视化onPostExecute(Result result)
UI线程执行。异步任务结束后调用,接收一个执行结果