這是我的活動(片段):何時在android中加載活動的佈局?
setContentView(R.layout.main)
//Some Time consuming code
正如你可以看到耗時的代碼都放在setcontentview
後。此活動需要很長時間才能加載。以確認我刪除了耗時的代碼,並且活動顯示得非常快。我的問題是我只在setContentView
佈局之後做耗時的工作,那麼爲什麼花費這麼多時間來顯示至少佈局。
這是我的活動(片段):何時在android中加載活動的佈局?
setContentView(R.layout.main)
//Some Time consuming code
正如你可以看到耗時的代碼都放在setcontentview
後。此活動需要很長時間才能加載。以確認我刪除了耗時的代碼,並且活動顯示得非常快。我的問題是我只在setContentView
佈局之後做耗時的工作,那麼爲什麼花費這麼多時間來顯示至少佈局。
該應用程序正在單線程UI線程上運行。它在完成其他所有操作之後才能顯示視圖。
您需要使用AsyncTask
或任何耗時代碼的線程。看看這個:http://developer.android.com/resources/articles/painless-threading.html
好答覆夥計! – Ashwin
每次耗時的任務都應該在非UI線程中完成。考慮使用一個AsyncTask。 要回答您的問題,只有在整個onCreate方法完成後纔會顯示活動。因此,它設置了它的內容視圖,然後執行onCreate方法的剩餘部分(耗時的代碼),然後顯示。
爲了您的信息,這裏是的AsyncTask的文檔:http://developer.android.com/reference/android/os/AsyncTask.html
你應該做的所有的時間中消耗的onResume work()方法。那麼完成onCreate()方法可能需要更少的時間,並且您的佈局將會更快加載。
您需要了解Android活動週期。 –