【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )
文章目录
- 一、导入依赖
- 二、注册 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 示例 )相关推荐
- 动手造轮子:实现一个简单的 EventBus
动手造轮子:实现一个简单的 EventBus Intro EventBus 是一种事件发布订阅模式,通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实 ...
- java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...
之前太忙导致 Android 开源项目实现原理解析 一度搁浅,目前一期进行中,我也完成了 EventBus 分析的初稿,大家可以稍微看看后面会继续润色下. PS:本文直接复制 Markdown,格式有 ...
- python推荐系统-用python写个简单的推荐系统示例程序
用python写个简单的推荐系统示例程序 作者:阿俊 发布于:2011-11-26 16:03 Saturday 分类:推荐系统 python这门语言写程序代码量非常少,短短几行就可以把程序写的很清楚 ...
- 1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.7 单层卷积网络 回到目录 1.9 池化层 简单卷积网络示例 (A Simple Convolution Network Example) 上节课,我们讲了如何为卷积网络 ...
- 如何在win10+VS2017环境下新建一个简单的WDF示例程序
上一课我们在win10系统+VS2017开发环境下搭建了WDK驱动程序开发环境的搭建,详见我的博客[如何在win10+VS2017环境下安装USB驱动开发套件WDK],今天我们来尝试建立一个最简单的K ...
- nodejs操作sqlserver数据_nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例...
本文实例讲述了nodejs基于mssql模块连接sqlserver数据库的简单封装操作.分享给大家供大家参考,具体如下: 注意:开启sqlserver服务器允许远程连接的步骤,自行百度,很多经验,no ...
- python工资管理系统课程设计_Python3实现的简单工资管理系统示例
本文实例讲述了Python3实现的简单工资管理系统.分享给大家供大家参考,具体如下: 工资管理系统要求: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工记录 4. 退出 执行代码: #!/u ...
- 两个简单的Demo示例向读者展示Flash和ASP.NET交互原理以及过程
ASP.NET与FLASH交互学习了ASP.NET的基础知识之后,终于等到学习交互的时候了.请大家和我一起来进行让人激动的交互吧!本章我将用两个简单的Demo示例向读者展示Flash和ASP.NET交 ...
- mediarecoder 安卓_android 通过MediaRecorder实现简单的录音示例
整理文档,搜刮出一个android 通过MediaRecorder实现简单的录音示例,稍微整理精简一下做下分享. MainActivity package com.centaur.collectvoi ...
最新文章
- 比explain更加详细的分析计划:Query Profiler
- python No migrations to apply
- Spring Boot之注册servlet三大组件
- 文件传输服务器多目录,node ftp 模块 如何把本地多个文件夹或者文件上传到服务器...
- leetcode 779. K-th Symbol in Grammar | 779. 第K个语法符号(Java)
- mysql df_MySQL主从复制实战
- hive 开窗函数_Hive的架构剖析
- 如何用一句话证明你是程序员?
- 男性玩家占78.8%、90后玩家占近50%、最多人选择中国风链游……《2019链游玩家需求调研报告》重磅发布!...
- webrtc项目编译报错(image not found)
- PHP关于错误抑制符@的使用
- border英文缩写_第一丶第二丶第三丶第四的英文缩写是什么
- html自定义菜单按钮图片,editormd,markdown 自定义导航栏按钮
- 用计算机清点木材的数量,计算机在木材工业中的应用.doc
- 小猿圈之Linux常见的发行版本
- Java 拾遗补阙 ----- 深入了解父类引用指向子类对象
- springboot的定时任务注解
- 5分钟学完《梁宁产品思维30讲》
- 社区社群运营,如何打造火爆营销的方法?
- RGB 颜色透明16进制表示