我正在开发一个应用程序,它基本上在应用程序本身开始时下载大量数据并将其显示在 ListActivity 中。我打算做的是在加载数据之前显示一个启动画面。
直到现在我所有的尝试都是徒劳的。我尝试了 anddev.org 提到的方法,但我的问题是主 Activity 应该启动但在我填充我的 ListActivity 之前启动画面应该是可见的。所以简而言之,我必须经过以下步骤:
- 开始我的主要活动。
- 显示启动画面。
- 继续在后台运行该进程。
- 处理完成后退出启动画面并显示主列表。
希望你明白它是什么样的……
原文由 JaVadid 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题很可能是您在与所有正在完成的工作相同的线程中运行启动画面(我假设是某种 对话框,例如 ProgressDialog )。这将防止启动屏幕的视图被更新,这甚至可以防止它显示到屏幕上。您需要显示启动画面,启动 AsyncTask 实例以下载所有数据,然后在任务完成后隐藏启动画面。
因此,您的 Activity 的 onCreate() 方法将简单地创建一个 ProgressDialog 并显示它。然后创建 AsyncTask 并启动它。我会让 AsyncTask 成为主 Activity 的内部类,因此它可以将下载的数据存储到 Activity 中的某个变量中,并在其 onPostExecute() 方法中关闭 ProgressDialog。
不知道如何在不显示代码的情况下再详细说明,所以这里是:
显然,您需要在那里填写一些内容,但是这段代码应该可以运行并为您提供一个很好的起点(如果有代码错误,请原谅我,因为我正在输入这个,所以我无法访问 Android SDK目前)。
可以在 此处 和 此处 找到有关 Android 中 AsyncTasks 主题的更多好读物。