在android中实现视觉反馈/忙碌指示的最简单方法

时间:2012-04-20 21:55:05

标签: android

我正在创建一个应用MainActivity,可以计算其数据库中的报告,以便显示在ReportActivity中。所有报告计算均在ReportActivity.onCreate()完成。

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

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

我已经找到了ProgressDialog onCreate,它在AsyncTask中进行所有计算时显示了progressdialog。

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

在ms窗口中我会使用waitcursor(沙漏)

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

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

但根本没有显示。

更新最终解决方案:

正如答案所示,我为this tutorial之后的处理实施了AsyncTask 基于this codesample

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

使用条形或圆形活动指示器。来自the official design guide

  

活动指标用于不确定长度的操作。   他们要求用户在某些事情结束时等待片刻,没有   详细了解幕后发生的事情。