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

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

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

现在开始吧

关于EventBus是什么

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

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

  • EventBus的项目地址为https://github.com/greenrobot/EventBus.git

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


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

如何使用

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

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

  @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mButton = (Button) findViewById(R.id.btn);mButton.setOnClickListener(new View.OnClickListener() {@Overridepublic 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. 水下自动循迹机器人_机器人简易循迹方式

    龙源期刊网 http://www.qikan.com.cn 机器人简易循迹方式 作者: 来源:<发明与创新 · 中学生> 2017 年第 10 期 循迹机器人是一种能按事先预定的路线自主行 ...

  2. Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)

    开篇废话 近期利用业余时间,跟着大神把Eventbus的框架学习了一下,在这里,记录一下这次学习的心得. EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的实现在And ...

  3. 微信小程序 map 自定义地图数据,实现方式+思路+代码(最简易的实现方式)

    先上效果图,总的来说就是在地图上加上自己需要的数据 注意事项: requestSimple是我封装的提交函数,我的其他帖子有. 重点掌握.(重点) 1.官方map组件,提供了自定义标记(markers ...

  4. 微信小程序 列表的分页实现(最新的最简易的实现方式+思路,附代码)

    老规矩先上效果图 这里的话 xwml页面展示就不贴代码了,意义不大.直接上js js页面 注意事项 主要使用的是 onPullDownRefresh 函数与 onReachBottom函数,一个是下拉 ...

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

    今天在打包上线的时候遇到了一个大坑,足足让我解决了三个小时来找这个问题 linker command failed with exit code 1 (use -v to see invocation ...

  6. vue通信方法EventBus的实现

      vue通信方式有很多,项目中用的比较多的的有pros.vuex.$emit/$on这3种,还有provide/inject(适合高阶组件).$attrs和$listeners(适合高阶组件)以及$ ...

  7. EventBus VS Spring Event

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

  8. 详解EventBus实现原理

    搞Java开发,阅读源码是家常便饭.唯有如此,才能不断吸收先进的设计思想,提高个人技术水平.下面以EventBus核心实现为引子来分析google大神是怎么优化观察者模式的. 前文已有EventBus ...

  9. 深度学习入门系列,用白话文的方式让你看得懂学的快(第八章)

    8.1 BP神经网络极简史 在神经网络(甚至深度学习)参数训练中,BP(Back Propagation)算法非常重要,它都占据举足轻重的地位.在提及BP算法时,我们常将它与杰弗里•辛顿(Geoffr ...

最新文章

  1. 软件架构设计-五视图方法论
  2. 可以改善mysql性能的InnoDB配置参数
  3. 音视频技术开发周刊 61期
  4. 【C语言天天练(二四)】内存分配
  5. java jama_java矩阵包jama的简单操作
  6. C#正则匹配、分组和替换
  7. 视频联网云平台EasyCVR集成海康EHome协议系列——Ehome协议调用流程介绍
  8. 信息检索与利用(第三版)第二章信息资源与信息源
  9. 基于 Python 的全国空气质量监测与可视化分析平台
  10. B站笔试真题之[编程题]扭蛋机
  11. 多线程实现 qq 群聊的服务端和客户端
  12. 解决MySQL5.7在MAC下登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  13. UML相关工具一览(2018年5月更新)
  14. 相对定位 绝对定位 固定定位 粘性定位 居中的三种方法 calc函数标签的使用方法
  15. 教育行业下半场强势到来!专访FCG教育链Edward Cai:从互联网教学到“链教学”,让天下没有不公平的教育...
  16. 英语46级报名考试系统
  17. xmlHttp.send(null)与xmlHttp.send…
  18. jq简单实现点击按钮跳转页面到指定tab内容
  19. JSONAjax(语法格式+解析json)
  20. 浅谈缓存系统的三个问题

热门文章

  1. 最详细的maven教程
  2. [iOS开发]Status Bar Style
  3. 用 Python 监控 NASA TV 直播画面
  4. day9-数据库操作与Paramiko模块
  5. varint zigzag 编码学习
  6. 开源verilog仿真工具iverilog的安装与使用
  7. 全球与中国住院EHR系统市场现状及未来发展趋势(2022)
  8. android怎么美化ui,安卓教程第一期最终篇(转)systemui.apk最全修改美化
  9. 2.5野兔和山猫的种群动态变化
  10. 限制字符输入数功能(jQ版和原生JS版)