为什么不推荐片段之间的直接通信?

时间:2012-07-20 06:05:55

标签: android android-fragments

developer.android.com上学习android片段时,指定不建议在两个片段之间进行直接通信。我想知道两个碎片之间的通信会失败的后果和后果是什么?

2 个答案:

答案 0 :(得分:9)

嗯,有了碎片,你并不总是确定它们在通信时是否会活着并附着。片段是否已连接且可用,可能还取决于设备布局或大小。如果您完全确定您的片段将同时附加到您的活动并且可用,那么我想您可以直接进行通信。

话虽如此,片段应该是合乎逻辑的独立单元。来自文档:

You can think of a fragment as a modular section of an activity

如果碎片直接相互影响,它会破坏模型。

为什么不在Activity中定义一个接口并获取Fragment A来调用Activity中的方法?然后你的Activity可以检查Fragment B是否可用,然后可以在Fragment B中调用相应的函数。

Here是文档建议

答案 1 :(得分:2)

Fragment只是一个UI组件,它比绘制自己更多。在这个问题的范围内,它与View没有什么不同。

所以一个非常类似的问题是:为什么两个观点不能直接相互沟通?