Asynctask是否需要进度对话框?

时间:2014-06-20 05:31:53

标签: android android-asynctask progressdialog android-dialog

我一直在使用Asynctask来调用API方法,并使用ProgressDialog向用户显示进程正在进行,除非进程已完成,否则他们无法使用后台或{ {1}}已在Asynctask

回到这个问题,onPostExecute是否真的需要显示进度并禁止用户在后台做任何事情?

8 个答案:

答案 0 :(得分:1)

  

Asynctask 是否需要 进度对话框?

没有

  

异步任务由在a上运行的计算定义   后台线程,其结果发布在UI线程上。一个   异步任务由3种泛型类型定义,称为Params,   进度和结果,以及4个步骤,称为onPreExecute,doInBackground,   onProgressUpdate和onPostExecute。

以编程方式:当依赖于异步任务以完成或到达特定阶段之前,会引入进度对话框,之后会有来自用户的进一步非异常结果。

它有一个UI角度,在指定的情况下,用户可视地或通过动画吸引用户,这是一个很好的做法,当应用程序没有为用户“做”任何事情时。

Android Ref:AsyncTask

More on Why to use Async task

答案 1 :(得分:1)

is the ProgressDialog really required to show the progress and to prohibit the user from doing anything in the background?

不,Asynctasks可以使用或不使用进度对话框或进度条。进度对话框是可选的,其使用的一个原因是让您的用户知道当前正在进行的进程。

价: http://developer.android.com/reference/android/os/AsyncTask.html

答案 2 :(得分:0)

不。如果您需要等待响应,它只是您可以向用户显示的内容。即使你没有,你的AsyncTask仍将在后台执行,并按照预期执行。使用AsyncTask的重点是阻止UI被阻止。

例如: 如果您只想将某种更新发送到服务器,则可能不会使用进度对话框。比如告诉服务器您的应用程序是在此特定时间启动的。用户不需要知道这一点。因此,您只需在后台执行AsyncTask并让用户正常使用应用程序,而更新在后台进行,而用户无需了解。

答案 3 :(得分:0)

  

ProgressDialog是否真的需要显示进度并禁止用户在后台执行任何操作?

如果您正在使用doinBackground内的许多活动,请注意, 您必须在进度更新中指定某些内容,例如加载,或请稍候,否则如果您的操作非常少,请保留该更新日期。

答案 4 :(得分:0)

  

是真正需要显示进度的ProgressDialog

使用ProgressDialog时显示AsyncTask是可选的AFAIK。但您必须了解在ProgressDialog中使用AsyncTask的目的。它用于阻止用户在任务运行时与应用程序执行任何交互。或者你可能想让他们知道后台发生了什么事。

答案 5 :(得分:0)

不必要。

AsyncTask中简单使用Progress Dialog用于在执行长时间运行进度时让最终用户参与进来。

答案 6 :(得分:0)

这取决于你的应用程序是什么以及你调用AsyncTask的频率,如果你过于频繁地调用AsyncTask例如1-2次/分钟那么这可能是一个糟糕的设计实践,你的用户将会由于频繁显示进度对话框而烦恼,这也会缩短电池寿命并消耗更多数据带宽。相反,您应该尝试通过一次调用批量处理所有请求。看一下这个链接,它可能会给你一个良好的开端http://developer.android.com/training/efficient-downloads/efficient-network-access.html

答案 7 :(得分:0)

不需要ProgressDialog,但这是一个很好的做法,因为它会告知用户正在进行的任务,并且可能会停止执行另一个AsyncTask
当一个AsyncTask在后​​台运行时,另一个运行,几乎不支持并行运行。
这是一个很好的做法,因为我担心使用ProgressDialog,因为当ProgressDialog解散时,AsyncTask已完成且无法并行执行。
看到这个。 Running multiple AsyncTasks at the same time -- not possible?