如何在Android中使用父级活动?

时间:2010-09-07 11:36:24

标签: android android-activity childactivity

众所周知,startActivityForResult()曾用于从父活动中获取任务的结果。在我们点击setResult()时。它将结果返回给父Activity。

子活动意味着它应该保持持久状态。这是用户单击子活动上的按钮的时间。它不会完成该活动并显示父活动。我可以再次从父母活动开始进行儿童活动。如果孩子不存在,则会启动新的子活动,否则应显示具有持久内容的现有子活动。

修改

简单地说,我的父Activity启动了一个新的Child Activity。现在两个活动都应该活着。如何在不完成子Activity的情况下调用Parent Activity(换句话说,如何将BringtoFront转换为父Activity)?对于这种情况,

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

这在Android中可行吗?有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这在Android中无法实现。在活动生命周期中没有提供这种情况。

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

更简单的方法是使用tabwidget并让用户在标签之间切换。这使您可以使用两个不同的意图初始化选项卡,如果用户更改回另一个选项卡,则只会暂停这两个选项。

答案 1 :(得分:0)

请为父母和子女活动设置不同的taskAffinity
并使用startActivity(intent)以FLAG_ACTIVITY_NEW_TASK标志开始您的活动。

该方法导致两个活动属于不同的任务,当你通过添加FLAG_ACTIVITY_NEW_TASK标志来切换任务时,状态将保持不变。

我认为它应该有效。

答案 2 :(得分:0)