关于Android进度对话框。避免?

时间:2014-01-16 03:20:48

标签: android android-fragments android-alertdialog android-dialog android-progressbar

我正在阅读关于Android网站中的Dialogs的内容,并且我遇到了一个说“避免ProgressDialog”的部分。

以下是链接:http://developer.android.com/guide/topics/ui/dialogs.html

这是否意味着他们建议不要使用它?我真的需要一个弹出窗口,在我的应用程序进行后台工作时显示进度。

这是否意味着我必须使用ProgressBar类构建自己的Progress Dialog?如何构建它的方式?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:38)

修改 使用Android O,ProgressDialog现在为officially deprecated。建议采用另一种方法

  

此类在API级别O中已弃用。   在活动内部使用ProgressBar等进度指示器,而不是使用此模式对话框。


原始回答:

这一切都来自于设计与展示。用户交互视角,而不是代码视角。

UI准则告诉您避免使用ProgressDialog而不是因为该类已被弃用(它不是在撰写此答案时),而是因为它强制用户避免与应用程序交互只是盯着屏幕。

以Google Play应用为例。当它下载应用程序/更新时,您仍然可以滑动,导航等。您可以在应用程序执行操作时参与其中。

如果您绝对需要用户停止交互,直到进度条完成,请务必执行此操作。文档只是说你可以找到更好的方法(因此链接到Progress & Activity)。

答案 1 :(得分:0)

在Android O中不推荐使用ProgressDialog。您应该创建一个ProgressBar并通过设置它的可见性来显示它。我使用来自https://github.com/Q115/DelayedProgressDialog的DelayedProgressDialog。它与ProgressDialog一样,如果有必要,还会带来延迟的好处。

用法:

DelayedProgressDialog progressDialog = new DelayedProgressDialog();
progressDialog.show(getSupportFragmentManager(), "tag");