android - 如何在android中使用事件总线库

标签 android android-studio event-bus

我尝试使用事件总线库,但我无法理解它的功能并查看了多个示例。是只使用services类还是使用activity和fragment那么是使用activity什么情况我们在activity或者fragment中使用event bus。

最佳答案

我们可以简单地使用 EventBus 而不是接口(interface)。我们可以将消息从一个类传递到一个或多个类。 EventBus 3 步

  • 定义
  • 注册和注销
  • Activity 后

定义事件:

public static class MessageEvent { /* your getter and setter */   }

准备订阅者:声明并注释您的订阅方法,可选择指定线程模式:

@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {
   /* event fire here when you post event from other class or fragment */
  };

注册和注销您的订阅者。例如在 Android 上,activity 和 fragment 通常应该根据它们的生命周期进行注册:

@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);//Register 
 }

注销

@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);//unregister
}

发布事件:

EventBus.getDefault().post(new MessageEvent());//post event

关于android - 如何在android中使用事件总线库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40987704/

相关文章:

android - 谷歌地图只能通过 wifi 加载,但不能在 3G 上加载

objective-c - Android Studio 中现有 Flutter 项目中 Swift 或 Objective-C 的原生语言设置在哪里?

Android Studio 不会导入 SVG Vector 的所有部分

amazon-web-services - 如何在客户端应用程序中订阅 AWS Event Bus 事件

azure - 在 azure 事件总线上,从一封信到死信队列需要多少时间

javascript - window.pixelRatio 在 Opera 中不起作用。还有其他选择吗?

android - 神秘的 "undefined reference"链接器错误

java - 带有用户滑动手势的滑动按钮

android - 连接到 AND UA651BLE 时获取状态为 133 的 Type_Gatt_Error

android - Greenrobot EventBus 和 Guava 的 EventBus 的区别