0

这是我的活动(片段):

setContentView(R.layout.main)
//Some Time consuming code


如您所见,耗时的代码放在setcontentview. 此活动需要很长时间才能加载。确认我删除了耗时的代码并且活动显示非常快。我的问题是我只是在setContentView布局之后才做耗时的工作,那么为什么至少要显示布局需要这么多时间。

4

3 回答 3

4

该应用程序在单线程 UI 线程上运行。在完成其他所有操作之前,它无法显示视图。

您需要AsyncTask为任何耗时的代码使用一个或一个线程。看看这个:http: //developer.android.com/resources/articles/painless-threading.html

于 2012-05-09T10:44:07.743 回答
2

每个耗时的任务都应该在非 UI 线程中完成。考虑使用 AsyncTask。要回答您的问题,只有在整个 onCreate 方法完成后才会显示活动。所以它设置它的内容视图,然后它执行 onCreate 方法的其余部分(你的耗时代码)然后它显示。

供您参考,这里是 AsyncTask 的文档:http: //developer.android.com/reference/android/os/AsyncTask.html

于 2012-05-09T10:46:27.493 回答
1

您应该在 onResume() 方法中完成所有耗时的工作。那么完成 onCreate() 方法可能需要更少的时间,并且您的布局将加载得更快。

于 2012-05-09T10:47:33.577 回答