Android Asynctask是否需要进度对话框?

Android Asynctask是否需要进度对话框?,android,android-asynctask,progressdialog,android-dialog,Android,Android Asynctask,Progressdialog,Android Dialog,我一直在使用Asynctask调用API方法,并使用ProgressDialog向用户显示一个进程正在进行,除非进程完成或者Asynctask已经在onPostExecute中,否则他们无法使用后台 回到问题,显示进度和禁止用户在后台做任何事情真的需要ProgressDialog。如果需要等待响应,您可以向用户展示它。即使您不这样做,您的AsyncTask仍将在后台执行,并执行它应该执行的操作。使用AsyncTask的全部目的是防止UI被阻塞 例如: 如果只是想向服务器发送某种更新,则可能不使用

我一直在使用
Asynctask
调用API方法,并使用
ProgressDialog
向用户显示一个进程正在进行,除非进程完成或者
Asynctask
已经在
onPostExecute
中,否则他们无法使用后台


回到问题,显示进度和禁止用户在后台做任何事情真的需要
ProgressDialog
。如果需要等待响应,您可以向用户展示它。即使您不这样做,您的
AsyncTask
仍将在后台执行,并执行它应该执行的操作。使用
AsyncTask
的全部目的是防止UI被阻塞

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

ProgressDialog真的需要显示进度并禁止用户在后台做任何事情吗

如果您习惯于
doinBackground
中的许多活动, 您必须在进度更新中指定一些内容,例如加载,或请稍候,否则,如果您有一个非常小的操作,只需保留该进度更新即可

显示进度确实需要ProgressDialog吗

使用
AsyncTask
时显示
ProgressDialog
是可选的AFAIK。但您必须了解在
AsyncTask
中使用
ProgressDialog
的目的。它用于阻止用户在任务运行时与应用程序进行任何交互。或者你可以简单地让他们知道背景中发生了什么

Asynctask是否需要进度对话框

没有

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

以编程方式:当在用户进一步进行非异常交互之前,依赖异步任务完成或到达特定阶段时,将引入进度对话框

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

不需要


AsyncTask中的“简单使用进度”对话框用于在执行长时间运行的进度时保持最终用户的参与。

这取决于应用程序的功能以及调用AsyncTask的频率,如果调用AsyncTask的频率太高,例如每分钟调用1-2次,则这可能是一种不好的设计实践,您的用户将被频繁显示的进度对话框所困扰,这也将缩短电池寿命并消耗更多的数据带宽。相反,你应该试着用一个电话批处理你的所有请求。看看这个链接,它可能会让你领先一步

不,Asynctasks可以与或不与进度对话框或进度条一起使用。进度对话框是可选的,使用它们的一个原因是让用户知道当前有一个进程正在后台进行

参考:
不需要
ProgressDialog
,但这是一种很好的做法,因为它会通知用户正在执行的任务,并且可能会停止执行另一个
异步任务
当一个
AsyncTask
正在后台运行时,另一个正在运行,几乎不支持并行运行
就我而言,使用
ProgressDialog
是一种很好的做法,因为当
ProgressDialog
解除时,
AsyncTask
已完成,不能并行执行

看这个

取决于你的应用程序行为。如果用户的下一个操作需要长时间运行的任务的输出,那么您应该保持用户直到完成,所以您需要显示对话框。我认为当您的UI不需要阻止来自服务器的数据时,请尝试忽略ProgressDialog,如果需要,则您必须向最终用户显示ProgressDialog以了解正在发生的事情。嗯。。这与编程有关还是与用户体验有关?@Marius这与编程有关
is the ProgressDialog really required to show the progress and to prohibit the user from doing anything in the background?