呃,要跟上时代的步伐,所以来学习一下EventBus(话说好像现在学也已经算是跟不上了。。嘛。。不管了,一步一步往前追,应该还来得及吧)。

转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50625105

看了网上一些的关于eventBus的文章,上来就叽里呱啦一大堆总结啊,概述啊。。上个原理图啊什么的。。 这样写虽然好,但是总会给一些初学者打一些退堂鼓。看到那么复杂就不想看下去了。。 所以在自己学习的过程中,想写一些直观的,精简的,适合初学者的博客。

现在开始吧

关于EventBus是什么

额。。因为笔者也是刚刚接触,所以暂时我们认为他是用来传递消息的东东(类似于handler啊 intent啊等等)。这样也比较好理解。 暂时撇开观察者模式不说,直接来看他的用法。

首先将EventBus整合到我们自己的项目中

1.在gradle里面,加入如下代码,这样即可在项目中使用EventBus


dependencies {
compile 'de.greenrobot:eventbus:2.4.0'
}

如何使用

  1. 在MainActivity的onCreate()周期注册EventBus。
EventBus.getDefault().register(this);
  1. 在onDestroy()注销EventBus。
  @Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}

这样便完成了一个EventBus的注册。现在,给Activity安上一个按钮,用这个按钮来发送消息,弹出一个Toast。

  @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.btn);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EventBus.getDefault().post("hello eventBus");
}
});
EventBus.getDefault().register(this);
}

此时,点击button,将会通过EventBus发送一条消息。然后来写一个onEventMainThread函数,去处理这个消息的接收。这个函数代表如果接收到消息,则运行在UI线程。里面去弹出一条Toast,为刚才发送的消息。

public void onEventMainThread(String str) {
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}

此时,点击按钮,效果如下:

具体的流程是: 按钮触发监听事件—->EventBus发送消息—->EventBus接收消息—->处理接收到的消息

这样应该大家可以很直观的了解了EventBus的作用,这也算是第一课时的笔记吧~

下一篇: EventBus的常用函数

大家如果喜欢我的博客,记得关注我哦。

EventBus 最简易的使用方式的更多相关文章

  1. 简易的解决方式linker command failed with exit code 1 (use -v to see invocation)

    linker command failed with exit code 1 (use -v to see invocation) 遇到这个问题先不要慌,不用纠结是不是自己改动了什么代码导致的. 长话 ...

  2. EventBus的其他常用函数

    上一篇EventBus最简易使用方式介绍了EventBus最简易的使用方式,摆脱了叽里呱啦+图片的长篇大论.目的是为了让刚开始接触的人们不晕头转向.那么这篇..我也要开始图片+叽里呱啦了. 转载请注明 ...

  3. HBase 实战(1)--HBase的数据导入方式

    前言: 作为Hadoop生态系统中重要的一员, HBase作为分布式列式存储, 在线实时处理的特性, 备受瞩目, 将来能在很多应用场景, 取代传统关系型数据库的江湖地位. 本篇博文重点讲解HBase的 ...

  4. EventBus VS Spring Event

    EventBus VS Spring Event 本地异步处理,采用事件机制 可以使 代码解耦,更易读.事件机制实现模式是 观察者模式(或发布订阅模式),主要分为三部分:发布者.监听者.事件. Gua ...

  5. 安卓高级EventBus使用详解

    我本来想写但是在网上看了下感觉写得不如此作者写得好:http://www.jianshu.com/p/da9e193e8b03 前言:EventBus出来已经有一段时间了,github上面也有很多开源 ...

  6. Guava源码解析之EventBus

    最近看Elastic-Job源码,看到它里面实现的任务运行轨迹的持久化,使用的是Guava的AsyncEventBus,一个内存级别的异步事件总线服务,实现了简单的生产-消费者模式,从而在不影响任务执 ...

  7. (转载)EventBus使用详解

    (转载)http://liuling123.com/2016/01/EventBus-explain.html 概述 EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的 ...

  8. 教你快速写一个EventBus框架

    前言EventBus相信大多数人都用过,其具有方便灵活.解耦性强.体积小.简单易用等优点,虽然现在也有很多优秀的替代方案如RxBus.LiveDataBus等,但不可否认EventBus开创了消息总线 ...

  9. CSS BEM 命名方式

    简介 简易 css 命名方式,减小命名冲突,使得 css 更有组织感和识别感.但如今写 react 项目大多可以忽略对 css 的命名约束了. 官网介绍:http://getbem.com/intro ...

随机推荐

  1. Go 语言指针

    Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务. 接下来让我们来一步步学习 Go 语言指针. 我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址. Go 语言 ...

  2. GDAL打开mdb文件失败解决方法

    使用GDAL打开mdb文件时提示下面错误信息: ERROR 1: Unable to initialize ODBC connection to DSN for DRIVER=Microsoft Ac ...

  3. Vue 踩坑记

    参考: https://forum.vuejs.org/t/unknown-issues-in-change-event-of-radio-in-vue-2-x-webpack-2-x/11034 v ...

  4. 计算机网络之局域网&以太网

    局域网的拓扑结构 局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限. 局域网具有广播功能,从一个站点可很方便地访问全网,局域网上的主机可共享连接在局域网上的各种硬件和软件资源. ...

  5. Android自定义View(LimitScrollerView-仿天猫广告栏上下滚动效果)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/53303872 本文出自:[openXu的博客] 1分析 2定义组合控件布局 3继承最外层控件 ...

  6. Gazebo機器人仿真學習探索筆記(七)连接ROS

    中文稍后补充,先上官方原版教程.ROS Kinetic 搭配 Gazebo 7 附件----官方教程 Tutorial: ROS integration overview As of Gazebo 1 ...

  7. 无需密码通过scp命令+key的方式实现文件传输

    如果觉得scp每次都要输入密码很麻烦, 那么这是解决方案.假设你平时在windows上开发,用户名是xiang, 你有一台Ubuntu服务器wdksw.com, 用户名是root.现在你准备上传一些文 ...

  8. SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlite-insert.html)

    SQLite Insert 语句 SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行. 语法 INSERT INTO 语句有两种基本语法,如下所示: INSERT IN ...

  9. React Native之ListView实现九宫格效果

    概述 在安卓原生开发中,ListView是很常用的一个列表控件,那么React Native(RN)如何实现该功能呢?我们来看一下ListView的源码 ListView是基于ScrollView扩展 ...

  10. 在非ViewController中显示AlertController的方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前我们可以在任何类中使用UIAlertView的show实例 ...