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

如何在Android中引入父活动?

  •  2
  • Praveen  · 技术社区  · 14 年前

    我们知道, startActivityForResult() 用于从父活动获取任务的结果。当我们点击 setResult()

    子活动意味着它应该保持持久状态。即用户单击子活动上的按钮时。它不会完成该活动并显示父活动。我可以再次从父活动转到子活动。如果子活动不存在,它将启动一个新的子活动,否则它将显示具有持久内容的现有子活动。

    简单地说,我的父活动开始一个新的子活动。现在这两项活动都应该是活跃的。如何在不完成子活动的情况下调用父活动(换言之,如何在父活动前进行BringtoFront)?在这种情况下,

    • 你不能使用 startActivity() . 因为它创建了一个新的活动实例。不存在父活动
    • 你不能使用 startActivityForResult() . 因为它完成了子活动实例。

    在Android中这可能吗?你知道吗?

    3 回复  |  直到 14 年前
        1
  •  2
  •   Janusz Daniel Rindt    14 年前

    这在Android中是不可能的。在活动生命周期中不提供这种情况。

    可以通过重用单个活动并切换布局来模拟这种行为。必须存储活动的整个状态,然后将布局更改为应该是子活动的布局,如果用户切换回父活动,则必须保存子活动的状态并还原父活动的状态。您还需要自己处理back键,以防止用户按下它并返回到启动父活动的活动。

    更简单的方法是使用 tabwidget 并允许用户在选项卡之间切换。这使您能够用两个不同的意图初始化选项卡,并且只有当用户更改回另一个选项卡时,这两个选项卡才会暂停。

        2
  •  0
  •   Jett Hsieh    14 年前

    taskAffinity 亲子活动,
    使用startActivity(intent)开始你的活动 FLAG_ACTIVITY_NEW_TASK

    该方法导致两个活动属于不同的任务,通过添加FLAG\u ACTIVITY\u NEW\u task FLAG切换任务时状态保持不变。