文章目录

  • 一、导入依赖
  • 二、注册 EventBus
  • 三、发送 EventBus 事件
  • 四、完整代码示例
  • 五、源码地址

一、导入依赖


在 Module 下的 build.gradle 中导入 EventBus 依赖 ;

implementation 'org.greenrobot:eventbus:3.2.0'

二、注册 EventBus


在 onCreate 注册 EventBus ;

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 首先注册订阅 EventBusEventBus.getDefault().register(this);}

在 onDestory 中 取消注册 EventBus ;

    @Overrideprotected void onDestroy() {super.onDestroy();// 取消注册EventBus.getDefault().unregister(this);}

三、发送 EventBus 事件


点击按钮 , 通过 EventBus 发送消息 ;

        textView = findViewById(R.id.textView);// 设置点击事件, 点击后发送消息textView.setOnClickListener((View view)->{EventBus.getDefault().post("Hello EventBus !");});

四、完整代码示例


package com.eventbus_demo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.TextView;import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;public class MainActivity extends AppCompatActivity {private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = findViewById(R.id.textView);// 设置点击事件, 点击后发送消息textView.setOnClickListener((View view)->{EventBus.getDefault().post("Hello EventBus !");});// 首先注册订阅 EventBusEventBus.getDefault().register(this);}/*** 使用 @Subscribe 注解修饰处理消息的方法*      该方法必须是 public void 修饰的*      只有一个参数 , 参数类型随意*      调用 EventBus.getDefault().post 即可发送消息到该方法进行处理* @param msg*/@Subscribepublic void onMessgeEvent(String msg){textView.setText(msg);}@Overrideprotected void onDestroy() {super.onDestroy();// 取消注册EventBus.getDefault().unregister(this);}
}

运行效果 : 点击按钮后发送消息 , 处理消息的 onMessgeEvent 方法中 , 接收到消息 , 将按钮文本变为 “Hello EventBus !” ;

五、源码地址


GitHub : https://github.com/han1202012/EventBus_Demo

【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )相关推荐

  1. 动手造轮子:实现一个简单的 EventBus

    动手造轮子:实现一个简单的 EventBus Intro EventBus 是一种事件发布订阅模式,通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实 ...

  2. java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...

    之前太忙导致 Android 开源项目实现原理解析 一度搁浅,目前一期进行中,我也完成了 EventBus 分析的初稿,大家可以稍微看看后面会继续润色下. PS:本文直接复制 Markdown,格式有 ...

  3. python推荐系统-用python写个简单的推荐系统示例程序

    用python写个简单的推荐系统示例程序 作者:阿俊 发布于:2011-11-26 16:03 Saturday 分类:推荐系统 python这门语言写程序代码量非常少,短短几行就可以把程序写的很清楚 ...

  4. 1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.7 单层卷积网络 回到目录 1.9 池化层 简单卷积网络示例 (A Simple Convolution Network Example) 上节课,我们讲了如何为卷积网络 ...

  5. 如何在win10+VS2017环境下新建一个简单的WDF示例程序

    上一课我们在win10系统+VS2017开发环境下搭建了WDK驱动程序开发环境的搭建,详见我的博客[如何在win10+VS2017环境下安装USB驱动开发套件WDK],今天我们来尝试建立一个最简单的K ...

  6. nodejs操作sqlserver数据_nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例...

    本文实例讲述了nodejs基于mssql模块连接sqlserver数据库的简单封装操作.分享给大家供大家参考,具体如下: 注意:开启sqlserver服务器允许远程连接的步骤,自行百度,很多经验,no ...

  7. python工资管理系统课程设计_Python3实现的简单工资管理系统示例

    本文实例讲述了Python3实现的简单工资管理系统.分享给大家供大家参考,具体如下: 工资管理系统要求: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工记录 4. 退出 执行代码: #!/u ...

  8. 两个简单的Demo示例向读者展示Flash和ASP.NET交互原理以及过程

    ASP.NET与FLASH交互学习了ASP.NET的基础知识之后,终于等到学习交互的时候了.请大家和我一起来进行让人激动的交互吧!本章我将用两个简单的Demo示例向读者展示Flash和ASP.NET交 ...

  9. mediarecoder 安卓_android 通过MediaRecorder实现简单的录音示例

    整理文档,搜刮出一个android 通过MediaRecorder实现简单的录音示例,稍微整理精简一下做下分享. MainActivity package com.centaur.collectvoi ...

最新文章

  1. 比explain更加详细的分析计划:Query Profiler
  2. python No migrations to apply
  3. Spring Boot之注册servlet三大组件
  4. 文件传输服务器多目录,node ftp 模块 如何把本地多个文件夹或者文件上传到服务器...
  5. leetcode 779. K-th Symbol in Grammar | 779. 第K个语法符号(Java)
  6. mysql df_MySQL主从复制实战
  7. hive 开窗函数_Hive的架构剖析
  8. 如何用一句话证明你是程序员?
  9. 男性玩家占78.8%、90后玩家占近50%、最多人选择中国风链游……《2019链游玩家需求调研报告》重磅发布!...
  10. webrtc项目编译报错(image not found)
  11. PHP关于错误抑制符@的使用
  12. border英文缩写_第一丶第二丶第三丶第四的英文缩写是什么
  13. html自定义菜单按钮图片,editormd,markdown 自定义导航栏按钮
  14. 用计算机清点木材的数量,计算机在木材工业中的应用.doc
  15. 小猿圈之Linux常见的发行版本
  16. Java 拾遗补阙 ----- 深入了解父类引用指向子类对象
  17. springboot的定时任务注解
  18. 5分钟学完《梁宁产品思维30讲》
  19. 社区社群运营,如何打造火爆营销的方法?
  20. RGB 颜色透明16进制表示

热门文章

  1. Cobbler 2.4.4 安装
  2. 老板,请给我多点培养【写给老板的一封信】
  3. python web shell
  4. DeepStream开发日志
  5. BZOJ3709: [PA2014]Bohater
  6. Android 阻隔返回键
  7. 网络号、主机号、子网号、子网掩码、子网划分
  8. C# 使用FileSystemWatcher来监视文件系统的变化
  9. web移动端常见问题解决方案
  10. 在linux下安装配置DNS服务器