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

从Fragment跳转其他Activity填写数据返回后如何刷新或召回父Activity

实现返回后刷新父页面的几种方案

方案1:使用Activity Result API(官方推荐)

这是最适合当前场景的实现方式:

  • 在跳转至子Activity的Fragment中注册Activity Result回调,回调触发后直接调用当前Fragment的列表适配器notifyDataSetChanged()方法刷新列表即可;如果修改的数据需要同步到其他Tab,可通过父Activity的公共方法获取对应Tab的Fragment实例,调用对应刷新逻辑
  • 子Activity完成模型数据设置后,调用setResult(RESULT_OK)再执行finish()返回即可

注意:旧版startActivityForResult已被AndroidX废弃,优先使用Activity Result API实现,无需手动维护请求码,代码更易维护

方案2:重写onResume生命周期方法实现刷新

如果不需要传递额外参数,仅需要返回后刷新,可选择该方案:

  • 重写对应Fragment或者父Activity的onResume方法,在方法内拉取最新的模型数据,调用列表刷新逻辑即可
  • 为了避免每次回到页面都执行无效刷新,可以新增一个全局布尔标记位,子Activity修改完数据后将标记位设为true,onResume中仅当标记位为true时执行刷新,刷新完成后将标记位复位为false即可

适配你的场景:因为5个Tab复用同一个Fragment,刷新时可以通过ViewPager的getCurrentItem()方法拿到当前展示的Tab位置,仅刷新当前可见的Fragment,减少性能损耗

方案3:事件通知实现(适合多Tab同步刷新场景)

如果修改数据后需要同步更新多个Tab的内容,可以用事件通知方案:

  • 自定义一个数据更新的事件类
  • 所有需要响应数据变更的Fragment/父Activity中注册事件观察者
  • 子Activity完成数据修改后发送对应事件,所有观察者收到事件后执行各自的刷新逻辑

可选实现:项目没有引入EventBus的话,用Android自带的LocalBroadcastManager也可以实现本地广播通知,无需额外引入依赖

内容的提问来源于stack exchange,提问作者Simran Inamdar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:07