1

这是交易:我有一个无法进一步改进的繁重布局,因为它包含带有权重的 LinearLayouts(所以我不能使用 RelativeLayouts)。在活动 A 中,我单击一个触发活动 B 的列表项。活动 A 冻结,直到活动 B 完全加载,然后显示活动 B。所以这是完整的事件队列:

  1. 活动A:开B
  2. 活动 A:冻结
  3. 活动 B:完成通货膨胀/setContentView
  4. 活动 A:回到应用程序堆栈
  5. 活动 B:显示

如何立即显示 Activity B以便 Activity A 不会冻结?我想过在 B 中膨胀一个临时布局,但我需要一个回调方法来告诉我 B 是完全可见的,然后我可以用真实的布局替换临时布局。

谁能帮我?谢谢!

题外话:Android 中的布局膨胀是一个真正的痛苦,它不应该阻塞整个 UI,但确实如此。设置列表适配器也是如此。

4

2 回答 2

0

您应该花时间在线程中执行 Activity B 的任务,如果您需要在任务完成后更新 UI,请使用处理程序执行此操作。

于 2011-08-04T09:56:54.653 回答
-1

您可以使用AsyncTask进行耗时的加载。您可以使用

 doInBackgroundMethod to load the data
 onProgressUpdate you can bind your layout to data.

如果您以这种方式工作,您的活动将不会被冻结

于 2011-08-04T09:59:03.967 回答