1

我有以下场景:在活动A中,当用户单击按钮时,应用程序向服务器发送请求以检索一些信息,然后将这些信息放入启动活动B的意图中。

在活动 B 中,在onCreate方法中,我这样做setContentView(R.layout.activity_b)(这个布局非常复杂,所以即使从 XML 中膨胀它也需要一段时间),然后进行一堆初始化。最后,在onStart我对组件进行一些最后的准备/安排。

在活动 A 中,当用户按下按钮时,我启动一个AsyncTask,它从服务器获取信息并启动活动 B,将所需的信息传递给意图。当我调用“startActivity”时,活动 B 的窗口会立即滑入到位,但是可能需要几秒钟才能完成初始化。在这几秒钟内,我看到一个黑屏。然后,最后,onStart执行,一切继续。

我想做的是在活动 B 滑入视图之前在屏幕外完成所有这些初始化,这样当它“到达”时,所有布局都已经存在。任何想法如何实现这一目标?

4

2 回答 2

0

我不认为你可以。就其性质而言,活动只有在屏幕上显示时才“活着”。

所以我认为没有办法让一个 Activity 开始工作(即实例化视图)而不是它在屏幕上的前景。

我想说,获得更好用户体验的最佳选择是使用某种进度指示器来显示用户正在加载的内容,然后在加载完成后隐藏。

于 2012-06-14T13:14:13.667 回答
0

也许碎片可以帮助?将活动 A & B 更改为 Fragment A & B 并在后台加载 Fragment B 而不显示它。

于 2012-06-14T14:25:29.213 回答