【问题标题】:How to show loading message or dialog until the other activity loading because it take long time -android-如何在加载其他活动之前显示加载消息或对话框,因为它需要很长时间-android-
【发布时间】:2013-11-13 14:15:32
【问题描述】:

我的活动需要很长时间才能加载,所以我希望在单击开始此活动时显示加载消息,例如(正在加载.....)

这是启动此活动的按钮

    start.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent intent = new Intent(test.this, MainActivity.class);
            startActivity(intent);

        }
    });

那么在 MainActivity 加载之前,我应该在此处编写什么代码来显示此加载消息?

【问题讨论】:

  • 请提供您的 MainActivity 中的代码。
  • 使用在 preExecute() 上创建并在 postExecute() 上关闭的进度对话框的 AsyncTask

标签: android page-loading-message


【解决方案1】:

如果您的活动 A 在点击时显示活动 B 需要很长时间才能加载,最常见的方式是:

  • 在activity B布局视图中有一个进度条,并使其在activity B的onCreate中可见

  • 所有长时间运行的操作要么放在 asyncTask 中,要么放在将在后台运行的某个 Service 中

  • 长时间运行的操作完成后 - 通过将进度条的可见性设置为 View.GONE 来更新进度条。

我会为您编写代码,但由于我没有您的代码,我认为我能提供帮助的最佳方法是将您的问题分解为一个步骤。

【讨论】:

    【解决方案2】:

    daneejela 提供了一个解决方案,但我确实认为您长时间启动 MainActivity 的原因是真正的问题,应该得到解决。

    当您在 MainThread 中执行过多的块方法调用或此类事情时,Activity 将需要很长时间才能启动。 尝试在后台线程中执行这些操作(您可以使用 AsyncTask)。这将导致立即启动 Activity。当您的 AsyncTask 工作时,您可以显示一个小 ProgressDialog 或更好,在您的 Activity 的某处显示一个不会阻止用户执行任何操作的 ProgressBar。

    您应该明确了解 Android 的 Main- 和 BackgroundThreading。对话框也有很棒的教程。您还应该查看 Android 设计指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多