代码之家  ›  专栏  ›  技术社区  ›  Pentium10

为预缓存启动所有选项卡的活动

  •  2
  • Pentium10  · 技术社区  · 15 年前

    我有一个 TabActivity 定义了三个选项卡。第一个选项卡是轻量级的,并在可接受的时间内呈现。但是第二个和第三个选项卡,在我单击它们之后,需要几秒钟的时间来进行视觉渲染。我想在加载完第一个选项卡后,在预缓存的后台启动它们。一旦它们被加载,我就可以在它们之间快速切换。

    所以我想知道如何启动第二和第三个选项卡。它们是新的 活动 加载到视图区域。

    1 回复  |  直到 15 年前
        1
  •  2
  •   CommonsWare    15 年前

    步骤1:去掉所有用作选项卡内容的活动。

    第二步:重写为 Views (你的孩子 FrameLayout 在主布局文件中 TabHost 活动),然后让它工作。将活动作为选项卡的内容会增加开销,但不会带来任何有意义的好处。

    如果这不足以提高性能,那么…

    步骤3:将第二个和第三个选项卡移动到单独的布局文件中。把它们充气 onCreate() 但只要抓住它们(不要把它们附在 标签栏 )添加选项卡规格时,请使用 TabContentFactory 并让工厂抓取预制的 意见 .

    如果只是把你的表现问题转移到 OnCuto() 然后…

    步骤4:尝试在后台线程中展开和设置这些视图。这可能只是爆炸,因为Android不喜欢在后台线程上进行UI操作。即使它确实有效,在完成工作之前,您也需要有聪明的处理用户单击第二个选项卡的可能性。

    或者,你可以加快这些标签的速度,这样它们就不会花费那么多时间,至少在一开始。