1
1
松散耦合碎片?
我不确定速度。但是从设计的角度来看,您应该使用一个接口来与活动通信,而不是直接从片段中调用活动方法。IE
界面
你松散结合的碎片
所以如果你在你的
将来您希望在
广播接收机方法?
|
2
0
对于片段和包含片段的活动之间的通信,实际上有一个更好的第三个选项。 更好的选择是使用接口作为回调方法。这在本文档中描述得很好: https://developer.android.com/training/basics/fragments/communicating 使用接口比使用两种方法更受欢迎,因为它既安全又高效。 对于第一种使用广播接收器的方法,这实际上是一种非常低效的解决方案,因为广播接收器不适合于像您所追求的那样的任务。 让我引用Android文档中的一些内容:
所以,是的,广播接收器将对你的应用程序的性能和设备的电池寿命产生更大的影响,而不是你建议的其他方法和我建议的方法。 另外,不要忘记广播接收器是用来听广播的。您在示例中使用的广播接收器类型实际上是全局广播,您没有明确地将其限制为“范围”,因此任何广播接收器都可能“监听”您的广播。在安全方面,使用这样的全球广播也不安全。 您也不希望其他应用程序可能触发与您的应用程序的广播接收器巧合的广播,导致它接收不适合它的数据,并由于这个意外和巧合的命名崩溃。 老实说,在某种程度上使用广播接收器的可能性更大。 至于第二种直接调用活动方法的方法…这实际上对于管理代码是非常低效的。你基本上是把片段和特定的活动紧密地联系在一起。
然而,片段,通过设计,使得它通常被交换成其他活动或片段…你基本上要做多次
另外,请记住,如果您稍后更改myActivity中的代码,它可能会由于您忘记它与活动的紧密绑定而导致此片段出现问题。 但是如果你使用更喜欢的回调接口方法,它只是一个中间人,目的是传递一条“嘿,为我做点什么”的消息。快速而直接。它还可以与您希望稍后将此片段附加到的任何活动或片段进行友好的处理,因为这些活动或片段只需要实现接口,并且在父级和子级之间形成回调桥。 |
3
0
最好使用接口从片段到活动进行通信,而不是本地广播。 活动将实现接口,片段将调用方法。 |
Bo Z · 未附加到上下文的片段 6 年前 |
Maarten · Android:无法更改片段中按钮的背景(可绘制) 6 年前 |
Prabs · 应用程序中的地图。片段和V4。支持碎片 6 年前 |
Mr.BitCoin · 在片段中隐藏工具栏和表格布局 6 年前 |
dev90 · 向单例类传递上下文的最佳方法是什么 6 年前 |
Kar · 具有MVP的Android TabLayout片段 6 年前 |
Raj · Android:通过查找带有标记而不是ID的容器来添加片段 6 年前 |