gpt4 book ai didi

android - 我如何管理 fragment 堆栈等 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:17 25 4
gpt4 key购买 nike

我有很多 Activity 。

A is list activity.

B is form activity. And generated dynamically. I open this activity two time in a row.

C is result activity.

A -> B -> B 就像简单的推送新 Activity 。如果结果成功,我想在按 C 时清除所有表单。

A -> B -> B -> C ==> A -> C.

如果我在 C Activity 中时结果失败,它可以像上面那样返回不同的 Activity 。

A -> B 或 A -> B -> B

我在按下 C 时使用了 cleartop,但它清除了所有 Activity 我如何保存 A Activity 的状态。

我如何管理 fragment 之类的 Activity 。

* 当我从第二个 B 回来时,第一个 B 应该打开 *

最佳答案

您可以通过以下步骤实现:

  1. 设置android:launchMode="singleTask"ActivityAAndroidManifest.xml文件。
  2. 设置onNewIntent ActivityA 中的方法如下所示:

    @Override
    protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Bundle mBundle = intent.getExtras();
    if(mBundle!=null){
    String launchActivity = mBundle.getString("activityName");
    switch (launchActivity){
    case "ActivityD": // This is Activity Name Here it is ActivityD.class
    startActivity(new Intent(ActivityA.this, ActivityD.class));
    break;
    }<br/>
    }<br/>
    }

  3. 现在开始 ActivityA来自 ActivityC如下所示。

    startActivity(new Intent(ActivityC.this, ActivityA.class).putExtra("activityName", ActivityD.class.getSimpleName()));

它将调用onNewIntent ActivityA的方法|并将匹配参数并启动 ActivityD来自 ActivityA .所以你的 ActivityA将保留在堆栈中并且 ActivityD将被添加到顶部的堆栈中。

  1. 现在要从A -> D 实现A -> B,你可以调用ActivityD 中的finish() 方法|当你开始ActivityB来自 ActivityD .

关于ActivityLaunchMode请引用this link

希望它对你有用!

关于android - 我如何管理 fragment 堆栈等 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53427261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com