2

我正在创建一个应用程序,该应用程序MainActivity可以从其数据库中计算报告以显示在ReportActivity. 所有报告计算都在ReportActivity.onCreate().

当用户单击 MainActivity-s 菜单“生成报告”时,菜单保持打开状态 2 秒,直到 ReportActivity.onCreate()完成并且报告变得可见。

给用户一些视觉反馈的最简单方法是什么?

我已经找到了ProgressDialog onCreate,它在 AsyncTask 中进行所有计算时显示了一个进度对话框。

我想知道是否有一些更简单的方法可以为用户提供一些视觉反馈,即菜单已成功单击并且设备没有崩溃。

在 ms windows 中,我会使用等待光标(沙漏)

我已经尝试在 ReportActivity 的 oncreate 中打开 ProgressDialog()

    final ProgressDialog progressDialog = ProgressDialog.show(this, "MY Dialog", "Please wait...");

但它根本没有显示。

更新最终解决方案:

正如答案所建议的那样,我根据此代码示例为遵循本教程的处理实现了 AsyncTask

4

3 回答 3

2

您需要将长时间运行的代码移动到后台线程中。UI 线程上长时间运行的代码会锁定 UI,从而导致用户认为应用程序已冻结/崩溃。研究使用AsyncTask. 这使您可以在后台线程上运行进程并提供视觉反馈,让用户知道您的应用程序正在运行。

于 2012-04-20T22:04:42.317 回答
1

使用条形或圆形活动指示器。来自官方设计指南

活动指标用于不确定长度的操作。他们要求用户稍等片刻,而不会详细了解幕后发生的事情。

于 2013-04-02T13:42:48.290 回答
1

使用 ProgressDialog 设计布局。使用 setContentView(Progressdialog)。计数 2-4 秒(您选择)再次在 setContentView 中设置您的旧布局。为什么不使用 AsyncTask?

于 2012-04-20T22:05:40.067 回答