当一个异步任务被执行,任务经过四各步骤:
1.onPreExecute(),在UI线程上调用任务后立即执行。这步通常被用于设置任务,例如在用户界面显示一个进度条。
2.doInBackground(Params...),后台线程执行onPreExecute()完后立即调用,这步被用于执行较长时间的后台计算。异步任务的参数也被传到这步。计算的结果必须在这步返回,将传回到上一步。在执行过程中可以调用publishProgress(Progress...)来更新任务的进度。
3.onProgressUpdate(Progress...),一次呼叫 publishProgress(Progress...)后调用 UI线程。执行时间是不确定的。这个方法用于当后台计算还在进行时在用户界面显示进度。例如:这个方法可以被用于一个进度条动画或在文本域显示记录。
4.onPostExecute(Result), 当后台计算结束时,调用 UI线程。后台计算结果作为一个参数传递到这步。
线程规则
有一些线程规则必须去遵守,这个类才会正确的工作:
任务实例必须创建在 UI线程
execute(Params...)必须在UI线程上调用
不要手动调用onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...)
这个任务只执行一次(如果执行第二次将会抛出异常)
内部类
enum AsyncTask.Status 表示任务的当前状态
本文详细介绍了异步任务执行的四个主要阶段:onPreExecute()、doInBackground()、onProgressUpdate() 和 onPostExecute(),并强调了每个阶段的作用及如何正确使用这些方法。此外还提到了异步任务执行的线程规则。
1155

被折叠的 条评论
为什么被折叠?



