【问题标题】:How to know when my Activity is fully created?如何知道我的 Activity 何时完全创建?
【发布时间】:2013-03-07 11:33:38
【问题描述】:

我有一个包含大量数据和元素的 Activity。

当它有太多信息时,活动等待显示为白色,这不是我想要的,我实际上想在加载数据时显示一个活动 .

那么,我如何知道我的活动何时完全创建?

我的意图是在第二个线程中启动整个等待活动的活动。

【问题讨论】:

  • 您的活动必须加载什么样的数据?

标签: android multithreading android-activity


【解决方案1】:

如果需要很长时间来加载,您应该在另一个线程中异步加载该数据。启动另一个线程(通过使用 AsyncTask,例如普通 Java 线程),加载数据并在 Activity 上显示一些加载视图,通知用户后台正在发生某些事情。

【讨论】:

    【解决方案2】:

    您可以使用 AsyncTask 并显示进度对话框,直到数据加载完毕。

    private class FetchRSSFeeds extends AsyncTask<String, Void, Boolean> {
    
      private ProgressDialog dialog = new ProgressDialog(HomeActivity.this);
    
      protected void onPreExecute() {
        this.dialog.setMessage(getResources().getString(
                R.string.Loading_String));
        this.dialog.show();
      }
    
    protected Boolean doInBackground(final String... args) {
        try {
    
            // Fetch the data from URL
            // do background process
    
            return true;
        } catch (Exception e) {
            Log.e("tag", "error", e);
            return false;
        }
    }
    
    @Override
    protected void onPostExecute(final Boolean success) {
    
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    
        if (success) {
            // Setting data to list adaptar
            setListData();
        }
    }
    

    【讨论】:

    • 但是你不能在主界面上使用它
    【解决方案3】:

    这个方法在activity中创建后调用

    @Override
        public void onStart() {
            super.onStart();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多