【问题标题】:Need to send a Broadcast in onActivityResult but target fragment is still paused需要在 onActivityResult 中发送广播,但目标片段仍处于暂停状态
【发布时间】: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


【解决方案1】:

经过一些尝试,我得出结论,最好的方法是停止使用 BroadcastReceiver,而是使用包含 F1 和 F2 的 Activity 中的 onActivityResult。在这个方法中,我直接调用了一个 F1 的方法来执行预期的操作。

谢谢迈克。 M 的建议。

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多