在AsyncTask中使用onProgressUpdate()的目的

时间:2017-06-28 08:11:53

标签: android android-asynctask

为什么要在Asynctask类中使用onProgressUpdate()方法, 我正在使用onPreExecute()和onPostExecute()以及doInBackground()但从未使用过onProgressUpdate,在这种情况下我们将使用此方法。 在此先感谢您的回复。

3 个答案:

答案 0 :(得分:0)

  

onProgressUpdate(Progress...),在调用后在UI线程上调用   发布进度(进度......)。执行的时间是   未定义。此方法用于显示任何形式的进度   后台计算仍在执行时的用户界面。   例如,它可用于为进度条设置动画或显示登录   文本字段。

在阅读时,您可以使用此功能发布异步任务进度。

protected void onProgressUpdate(Integer... progress) {
     showProgressPercent(progress[0]);//write your own codes
}

Source

答案 1 :(得分:0)

onProgressUpdate()用于通过更新用户有关某个时间启动的后台进程来改善用户体验。有关更多信息,请参阅the docs

答案 2 :(得分:0)

AsyncTask生命周期: onPreExecute - > doInBackground - > onPostExecute

  • onPreExecute 正在调用MainThread。这意味着你可以触摸视图。
  • doInBackground 正在调用BackgroundThread。这意味着您无法触摸视图。
  • onPostExecute 正在调用MainThread。

因此,当您在doInBackground内部进行工作时,您可能希望通知用户有关作业的进度,但您无法通知用户,因为它正在呼叫BackgroundThread。你需要跳转到MainThread,而AsyncTask会为你提供 onProgressUpdate 功能。

你可以在doInBackground中调用 publishProgress