【问题标题】:How to know when activity finished loading?如何知道活动何时完成加载?
【发布时间】:2015-06-22 08:54:13
【问题描述】:

我正在尝试实现将加载所有活动的 ProgressDialog。 所以我将这一行添加到 onCreate() 方法中:

pd = ProgressDialog.show(this, "Waiting...", "Please wait five seconds..."); 

但是在加载完所有内容后开始加载,并且它不会停止,因为我不知道在哪里添加该行:

pd,dismiss();

那么有没有在 Activity 显示时调用的内置方法(例如在 iOS 中 - viewDidAppear)以及在 Activity 完成加载并加载所有内容时调用的另一个内置方法?

【问题讨论】:

  • 加载所有活动是什么意思?
  • @dhuma1981 在活动中我从网络获取内容,这需要一段时间...
  • 你知道所有数据都加载完成了吗?
  • @Nir 首先使用 asyctask 获取数据,并且有一些方法可以关闭加载对话框。

标签: java android android-activity progressdialog android-lifecycle


【解决方案1】:

加载所有活动是什么意思?我认为你走错路了。您无法加载所有活动,但您可以将启动活动称为意图。在这种情况下,活动生命周期出现在图片中。

请查看: http://www.mikestratton.net/assets/android_activity_lifecycle.png

如果您希望我们使用进度对话框,并在后台线程上加载任何内容,请阅读以下内容: progressDialog in AsyncTask

在 Android 中处理对话框的好例子: http://examples.javacodegeeks.com/android/core/ui/progressdialog/android-progressdialog-example/ 请不要尝试加载所有活动。永远不要调用 new MyActivity();从不

【讨论】:

    【解决方案2】:

    “我从网络获取内容的活动”

    我从你的 cmets 得到这条线,这意味着你正在获取一些数据,你需要显示 ProgressDialog。

    如果这是正确的,那么您可能将AsyncTask 用于webservice

    所以你不需要在你的 onCreate 方法中显示对话框。您需要通过 AsyncTask onPreExecute() 方法显示您的 ProgressDialog。

    一旦完成,你需要在onPostExecute方法中cancel dialog

    编辑: 异步任务参考http://developer.android.com/reference/android/os/AsyncTask.html 这是完美的教程。

    【讨论】:

    • 你能给出一个教程来解释如何准确地做这件事吗?
    • 你用谷歌搜索一下。你可以得到很多例子。无论如何检查我的编辑
    【解决方案3】:

    您可以在onStop() 中关闭您的对话框

    @Override
        protected void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            pd.dismiss();
        }
    

    或者您可以在onDestroy() 中解散

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
          pd.dismiss();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-05
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2020-03-24
      • 2012-05-21
      • 1970-01-01
      相关资源
      最近更新 更多