【发布时间】:2015-11-26 21:07:51
【问题描述】:
我有片段 F1 和 F2。
F1 包含一个在 F1 的 onResume/onPause 中注册/取消注册的 BroadcastReceiver。
当我为 F2 的结果启动活动时,F1 和 F2 都被暂停。我最终得到了 F2 的 onActivityResult 调用。从那里,我需要向 F1 发送广播,但此时尚未调用 onResume,因此 BroadcastReceives 没有在监听。
在这种情况下最好的解决方案是什么?
现在,我在 F1 的 onAttach/onDetach 中注册接收器,以便在执行 onActivityResult 时它处于活动状态。不过,它看起来并不是最好的解决方案。
【问题讨论】:
-
为什么不在 onResume 或可见性上检查需要在 F1 中更新的数据?您在广播中发送的具体内容是什么?
-
不要使用广播和接收器来尝试在同一个Activity中的Fragment之间传递数据。使用通过托管 Activity 传递数据的标准方法。
-
@Shahar 在广播中我要求 F1 采取行动(在导航抽屉中选择一个项目)。感谢您的评论。
-
@MikeM。是的,在这种情况下,我将停止使用 BroadcastReceiver。感谢您的帮助。
标签: android android-fragments broadcastreceiver onactivityresult