【问题标题】:Starting an Activity and delaying its transition启动 Activity 并延迟其转换
【发布时间】:2010-12-01 15:09:42
【问题描述】:

我有 2 项活动:

    - 活动 A 正在从互联网收集数据(需要一些时间)
    - 活动 B 正在根据之前收到的数据构建 UI 元素(这也需要一些时间)

当 Activity A 开始下载时,应用进入加载阶段。完成后,活动 B 开始,因此我在 A 和 B 的视图之间进行了转换。然后 B 还需要一个加载阶段。

我的加载 - 过渡 - 加载 - 结果看起来一点都不好看。

我想要加载 - 转换 - 结果,其中两个活动的加载被分组。

所以我的问题是:有没有办法开始活动但延迟过渡?

【问题讨论】:

  • “那么 B 还需要一个加载阶段”:对于加载阶段,您的意思是系统绘制 UI 所需的“绘制阶段”,对吧。

标签: android views android-activity transition


【解决方案1】:

我认为您在这方面的做法不正确。我建议只使用装载机进行一项活动。然后使用AsyncTask 之类的东西在不同的线程中加载数据。在加载数据时更新 UI,然后在完成所有操作后移除加载器。您应该使用多个线程来完成需要时间的工作,否则您的 UI 将冻结。看看你上面所说的,我不明白你为什么需要两个活动。

【讨论】:

    【解决方案2】:

    您可以使用 ActivityGroup:http://developer.android.com/reference/android/app/ActivityGroup.html

    这可以让你实现你想要的。我认为没有它是不可能的 - (如果你真的需要等到所有代表数据的 UI 元素都被绘制出来。否则我建议遵循 Amir 在下面的建议)。

    您将两个活动都放入了 ActivityGroup,但在开头隐藏了 B(可见性=消失)。然后,您可以在加载数据并构建 B 的 UI 后交换可见性/进行转换。

    如果数据已经在 A 中预加载,我很好奇你有什么样的布局/UI 需要这么长时间才能构建。

    【讨论】:

    • ActivityGroup 已弃用
    猜你喜欢
    • 2018-12-03
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2015-04-18
    • 2015-11-04
    相关资源
    最近更新 更多