片断和活动之间的解耦通信



场景:您希望通过适配器或视图holder中的单击侦听器显示一个新的Fragment。下面是我过去见过的两种最常见的解耦方法。我注意到它们都有各自的优缺点。

你通常更喜欢哪种方法?

  1. 在Activity监听的接口上调用一个方法
  2. 发布Activity订阅的事件(事件总线)。

请分享原因

在尝试了第一种选择和第二种选择之后,我会毫不犹豫地再次选择EventBus !

当Fragment应该向Activity报告事件时,例如实现双窗格布局,我使用第一种方法,因为它很容易从Fragment检索Activity并将其转换为定义良好的接口。另外,当您看到带有接口实现的Activity类声明时,它的作用是显而易见的。方法2也是有效的,但在我看来不太直接。

我认为在这种情况下,最好的方法是第一个选项,因为它的实现很容易。

最新更新