我有一个包含100个或更多按钮的大型活动。但是一旦加载它就能正常工作。然而问题是加载。从单击其启动图标到获取第一个视图需要10-12秒。在第一个视图之前,它在黑色背景中显示灰色标题栏。
至少,我想在加载时显示一个简单的进度条或对话框。但似乎在setContentView执行之前你无法显示任何内容。我想我已经尽力而为但没有成功。如果你能给我任何暗示或想法,我会很感激。
更新
我找到了戏剧性的解决方案。加载视图现在需要一秒钟。我根本没有使用启动,线程或异步任务 - 顺便说一句,不要尝试在UI上使用线程或异步,因为Android UI不是线程安全的。问题是这些按钮是基于一个自定义类,需要初始化来加载相同的资源。 - 所以在setContentView上发生了100个或更多的文件操作。使它们成为一个单一的装载解决了我的问题。
答案 0 :(得分:1)
您正在相同的UI线程上加载数据,因此在加载期间不会显示任何内容。 使用Async Task加载单独的帖子。
1)在onPreExecute()
中显示progressBar
2)在doInBackground()
中加载数据。这里没有UI相关的东西
3)更新UI上的更改,隐藏onPostExecute()
答案 1 :(得分:0)
在调用setContentView()
之前使用此代码。也许有帮助。
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
requestWindowFeature(Window.FEATURE_PROGRESS);
setProgressBarIndeterminateVisibility(true);
setProgressBarVisibility(true);