当我的测验应用程序第一次启动时,它需要将问题添加到数据库和其他一些东西,这需要几秒钟。我想在发生这种情况时显示一个不确定的进度条。添加问题后,该类调用 finish() 并转到主屏幕。问题是除非未调用完成,否则不会绘制布局。我假设在调用 oncreate 和 onstart 之前它不会绘制 XML 布局。那么我该如何解决呢?
问问题
845 次
2 回答
1
使用AsyncTask,在其中显示进度对话框并在准备您的数据库中onPreExecute
关闭。onPostExecute
doInBackground
除非您使用 DialogFragment 来显示对话框,否则您必须处理设备旋转。
于 2012-11-25T19:49:59.690 回答
1
填充数据库时未显示 UI 的原因可能是您在 UI-Thread(应用程序的主线程)中执行此操作。由于线程忙于填充您的数据库,因此没有时间显示 UI、动画进度指示器或对用户操作做出反应。
因此,您应该始终在单独的线程中运行耗时的任务。请参阅 android 开发者博客中有关无痛线程的优秀条目以获取更多信息并正确执行此操作:
于 2012-11-25T20:02:24.070 回答