You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不使用startActivityForResult()能否返回携带保存数据的上一个Activity?

解决方案

系统默认向上导航逻辑会重建父Activity实例,不会复用栈内已存在的实例,你可以选择以下任意一种方案解决,均不需要在ThirdMainActivity新增额外按钮或交互逻辑:

方案1:配置SecondMainActivity启动模式(修改最简单)

在AndroidManifest.xml中找到SecondMainActivity的声明节点,添加android:launchMode="singleTop"属性即可,配置示例:

<activity
    android:name=".SecondMainActivity"
    android:launchMode="singleTop"
    <!-- 保留你原有其他配置,比如android:parentActivityName等 -->
    />

配置后如果栈顶已经存在SecondMainActivity的实例,系统会直接复用该实例,不会新建,原有存储的用户名字符串会完整保留。

方案2:重写ThirdMainActivity向上导航逻辑(兼容性最优)

左上角向上箭头默认走重建父Activity的逻辑,你可以重写导航方法让它和系统返回键行为一致,直接回到已有的SecondMainActivity实例:
Java版本代码:

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

Kotlin版本代码:

override fun onSupportNavigateUp(): Boolean {
    onBackPressed()
    return true
}

该方案不需要修改启动模式,不会引入其他页面跳转逻辑变更,适配所有系统版本。
注意:两种方案二选一即可,同时兼容系统底部返回键和页面左上角返回箭头操作

内容的提问来源于stack exchange,提问作者Sleepi Beans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 11:15:07