2

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

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

编辑:

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

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

这在Android中可能吗?任何的想法?

4

3 回答 3

2

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

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

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

于 2010-09-07T12:20:59.617 回答
0

请为父子活动设置不同的 taskAffinity
, 并使用 startActivity(intent) 以FLAG_ACTIVITY_NEW_TASK标志启动您的活动。

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

我认为它应该工作。

于 2010-09-07T15:08:26.377 回答
0

尝试使用FLAG_ACTIVITY_REORDER_TO_FRONT.

于 2012-04-20T18:30:22.810 回答