我有一个包含 100 个或更多按钮的大型 Activity 。但是加载后它工作正常。然而问题是加载。从单击其启动图标到获得第一个 View 需要 10-12 秒。在第一个 View 之前,它显示黑色背景中的灰色标题栏。
至少,我想在加载时显示一个简单的进度条或对话框。但似乎在执行 setContentView 之前您无法显示任何内容。我想我已经尽我所能,但没有成功。如果您能给我任何提示或想法,我将不胜感激。
更新:
我找到了一个戏剧性的解决方案。现在需要一秒钟来加载 View 。我根本没有使用启动、线程或异步任务——顺便说一句,不要尝试在 UI 上使用线程或异步,因为 Android UI 不是线程安全的。问题是这些按钮基于需要初始化才能加载相同资源的自定义类。 - 因此在 setContentView 上发生了 100 次或更多次文件操作。使它们只需一次加载就解决了我的问题。
最佳答案
您正在同一 UI 线程上加载数据,因此在加载期间不会显示任何内容。 使用 Async Task用于在单独的线程中加载。
1)在onPreExecute()
中显示进度条
2) 在 doInBackground()
中加载数据。这里没有 UI 相关的东西
3) 更新 UI 上的变化,在 onPostExecute()
关于android - setContentView 需要很长时间(10-15 秒)才能执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180072/