0

这是我在清单中的活动标签:

<activity
    android:name=".Activity_B"
    android:label="@string/app_name"
    android:launchMode="singleTop"/>

我想要完成的是:

活动_A ---> 活动_B ---> 活动_C ---> 活动_B

当我从 Activity_B 转到 Activity_C 时,我不想完成 Activity_B。

但是当我单击 Activity_C 中的一个按钮时,我想启动 Activity_B,它必须重新创建(由于 Activity_C 中的某些操作而更改了数据),并且必须完成 backstack 中的前一个 Activity_B 实例。

android:launchMode="singleTask"它几乎按要求工作,但没有重新创建 Activity_B。

android:launchMode="singleTop"重新创建 Activity_B 但不会从后台堆栈中删除其先前的实例

android:launchMode="singleInstance"这与singleTask

4

1 回答 1

1

将评论转化为答案

您描述的工作流程非常适合使用startActivityForResult(). 您应该使用它从 Activity-B 调用 Activity-C,当数据更改时,将结果设置为RESULT_OK,如果用户返回,您可以修改/更新 Activity-B。

这就是它应该完成的方式。

于 2013-02-20T12:40:29.790 回答