这是我的活动(摘录):
setContentView(R.layout.main)
//Some Time consuming code
如您所见,耗时的代码放在setcontentview
之后。此活动需要花费大量时间才能加载。确认我删除了耗时的代码并且活动显示得非常快。我的问题是我只在setContentView
布局后进行耗时的工作,那么为什么花费这么多时间来显示至少布局
答案 0 :(得分:4)
该应用程序在单线程UI线程上运行。在完成其他所有操作之前,它无法显示视图。
您需要使用AsyncTask
或线程来处理任何耗时的代码。看看这个:http://developer.android.com/resources/articles/painless-threading.html
答案 1 :(得分:2)
每次消费任务都应该在非UI线程中完成。考虑使用AsyncTask。 要回答您的问题,只有在整个onCreate方法完成后才会显示活动。所以它设置了它的内容视图,然后它执行onCreate方法的reste(你耗时的代码),然后显示。
有关您的信息,请参阅AsyncTask的文档:http://developer.android.com/reference/android/os/AsyncTask.html
答案 2 :(得分:1)
您应该在onResume()方法中完成所有耗时的工作。然后可能需要更少的时间来完成onCreate()方法,您的布局将加载更快。