我想知道 AsyncTask 的所有四种方法之间的技术区别。预执行()doInbackground()onPublishProgress()后执行()我不想问调用方法的顺序。我想知道这些方法之间的主要技术区别,它们将它们区分开来。
1 回答
达令说
TA贡献1821条经验 获得超6个赞
onPreExecute()
,在执行任务之前在 UI 线程上调用。此步骤通常用于设置任务,例如通过在用户界面中显示进度条。
doInBackground(Params...)
, 在 onPreExecute() 完成执行后立即在后台线程上调用。此步骤用于执行可能需要很长时间的后台计算。异步任务的参数传递到这一步。计算的结果必须由这一步返回,并将传递回最后一步。这一步也可以使用 publishProgress(Progress...) 来发布一个或多个进度单元。这些值发布在 UI 线程上的 onProgressUpdate(Progress...) 步骤中。
onProgressUpdate(Progress...)
,在调用 publishProgress(Progress...) 后在 UI 线程上调用。执行的时间是不确定的。此方法用于在后台计算仍在执行时在用户界面中显示任何形式的进度。例如,它可用于动画进度条或在文本字段中显示日志。
onPostExecute(Result)
, 在后台计算完成后在 UI 线程上调用。后台计算的结果作为参数传递给这一步。
添加回答
举报
0/150
提交
取消