【问题标题】:Android displaying white screen until Asynctask starts but I have already loaded a layoutAndroid 在 Asynctask 启动之前显示白屏,但我已经加载了布局
【发布时间】:2013-08-15 05:23:41
【问题描述】:

所以我有以下代码和一个问题: 它应该加载一个应该说“正在下载数据库......”的布局 (动态添加到布局中)但是我得到一个白屏,直到 数据库已更新,然后继续 add_categories_layout(0) 并且工作正常。

如何让它显示第一个布局?

受保护的无效 onResume(){

    super.onResume();
    setContentView(R.layout.home_screen_layout);
    SF = (LinearLayout) findViewById(R.id.SF);
    p_db_adapter = new DBAdapterProducts(getApplicationContext());
    c_db_adapter = new DBAdapterCategories(getApplicationContext());
    add_downloading_DB_layout();

    new UpdateDB().execute(CATEGORY_URL, PRODUCTS_URL, TIMESTAMP_URL_CATEGORIES, TIMESTAMP_URL_PRODUCTS);       
    while(DBupdated == false){}
    add_categories_layout(0);

}

【问题讨论】:

标签: android layout android-asynctask load-order


【解决方案1】:

在 onResume 完成之前它不会绘制屏幕,​​并且在 DBUpdated 为真(此时布局被交换)之前 onResume 不会完成。

【讨论】:

    【解决方案2】:

    您应该将setContentView 放入onCreate()onCreateView()

    我们还能看到布局的动态添加吗?

    【讨论】:

    • 能否请您发布您的 add_downloading_DB_layout() 函数?
    • 我已经解决了:在 onProgressUpdate 中调用 add_categories_layout(0) 并仅在数据库已更新时调用 onResume。
    【解决方案3】:

    通常您在oncreate() 方法中设置内容视图。那里可能有代码导致它不起作用。如果您没有 Oncreate 方法,请制作一个并将此代码复制/粘贴到那里。

    【讨论】:

      【解决方案4】:

      您可以将add_categories_layout(0); 放在AsyncTaskonPostExecute() 中,因为它在UI Thread 上运行。所以当你的任务完成时,它会运行这个方法,onResume() 可以完成它需要做的事情。如果您的AsyncTask 是一个内部类,那么您将可以访问Activity 方法和成员变量。如果它是一个单独的文件,那么您只需将 Activity 的引用传递给它即可调用该方法。

      Here are a couple answers 如果您需要,可以提供帮助。

      正如其他人所说,通常setContentView()onCreate() 中完成,以确保它是最先运行的事情之一,但这不应该成为问题。但是,除非您有理由将其放在 onResume() 中,否则我会将其移至此处。

      【讨论】:

      • 谢谢,但我从来没有到达 onPostExecute() 因为我希望它运行并每隔“x”秒更新一次。你认为这是一个好主意吗?我使用 Thread.sleep(x)。
      • 然后你可以把它放在onProgressUpdate(),它也在UI Thread上运行。在doInBackground() 中调用publishProgress(),它将调用onProgressUpdate()
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多