【问题标题】:How to communicate between Fragment and an non-hosting Activity in Android?如何在 Android 中的 Fragment 和非托管 Activity 之间进行通信?
【发布时间】:2015-11-10 19:53:47
【问题描述】:

我有一个 Activity A,它是一个带有导航菜单和工具栏的主 Activity,它承载了一个带有片段的 Viewpager。假设该 viewpager 中的 Fragment B 通过单击按钮的 Activity C 启动 Intent。

Activity C是一个视频播放器Activity,需要通过回调触发Fragment B中的一个方法,然后Fragment B调用Activity C中的一个方法。

我知道 Fragment 和 Activity 可以使用接口进行通信,但您可能已经理解,Activity C 并没有托管 Fragment B。

那么两者之间是否可以做这种接口呢?我需要改变我的整体设计吗?

【问题讨论】:

  • 你可以从那个特定的 Fragment 去自己的宿主活动,然后从那里去渴望活动

标签: android android-fragments android-activity interface callback


【解决方案1】:

那么两者之间是否可以做这种接口呢?

这取决于你到底在做什么,但正如你写的那样,我会给它一个坚定的“不”。

在您的场景中,显示活动 C 时,片段 B 不可见。片段 B 将被停止(即 onStop() 已被调用),因此您真的不应该对它做任何事情。

听起来您需要一个稍微不同的架构,其中需要在 Fragment B 和 Activity C 之间共享的组件作为独立的组件存在,独立于 Fragment B 和 Activity C 的生命周期。

【讨论】:

  • 有什么建议的方法吗?如果 Activity C 是在 Fragment B 之上添加的 Fragment,它会以某种方式工作吗?我现在严重卡在这个问题上一段时间了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多