关于Android进度对话框 避免?

我正在阅读有关Android站点的对话框,我遇到了一个说“避免ProgressDialog”的部分。

这里是链接: http : //developer.android.com/guide/topics/ui/dialogs.html

这是否意味着他们build议不要使用它? 我真的需要一个popup窗口显示进度,而我的应用程序正在做后台工作。

这是否意味着我必须使用ProgressBar类构build自己的进度对话框? 顺便说一句,如何构build它? 任何帮助表示赞赏。

编辑:使用Android O,ProgressDialog现在正式被弃用 。 build议替代方法

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


原始答案:

这完全来自devise和用户交互的angular度,而不是代码的angular度。

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

以Google Play应用为例。 在下载应用程序/更新时,您仍然可以轻扫,导航等。您仍然可以在应用程序正在进行操作时参与其中。

如果你绝对需要用户停止交互,直到进度条结束,一定要这样做。 这些文档仅仅是说你可能会find更好的方法(因此链接到进度和活动 )。

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

用法:

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