EventBus 最简易的使用方式
2016-02-02 18:03
369 查看
呃,要跟上时代的步伐,所以来学习一下EventBus(话说好像现在学也已经算是跟不上了。。嘛。。不管了,一步一步往前追,应该还来得及吧)。
看了网上一些的关于eventBus的文章,上来就叽里呱啦一大堆总结啊,概述啊。。上个原理图啊什么的。。 这样写虽然好,但是总会给一些初学者打一些退堂鼓。看到那么复杂就不想看下去了。。 所以在自己学习的过程中,想写一些直观的,精简的,适合初学者的博客。
1.在gradle里面,加入如下代码,这样即可在项目中使用EventBus
在onDestroy()注销EventBus。
这样便完成了一个EventBus的注册。现在,给Activity安上一个按钮,用这个按钮来发送消息,弹出一个Toast。
此时,点击button,将会通过EventBus发送一条消息。然后来写一个onEventMainThread函数,去处理这个消息的接收。这个函数代表如果接收到消息,则运行在UI线程。里面去弹出一条Toast,为刚才发送的消息。
此时,点击按钮,效果如下:
具体的流程是: 按钮触发监听事件—->EventBus发送消息—->EventBus接收消息—->处理接收到的消息
这样应该大家可以很直观的了解了EventBus的作用,这也算是第一课时的笔记吧~
大家如果喜欢我的博客,记得关注我哦。
看了网上一些的关于eventBus的文章,上来就叽里呱啦一大堆总结啊,概述啊。。上个原理图啊什么的。。 这样写虽然好,但是总会给一些初学者打一些退堂鼓。看到那么复杂就不想看下去了。。 所以在自己学习的过程中,想写一些直观的,精简的,适合初学者的博客。
现在开始吧
关于EventBus是什么
额。。因为笔者也是刚刚接触,所以暂时我们认为他是用来传递消息的东东(类似于handler啊 intent啊等等)。这样也比较好理解。 暂时撇开观察者模式不说,直接来看他的用法。首先将EventBus整合到我们自己的项目中
EventBus的项目地址为https://github.com/greenrobot/EventBus.git1.在gradle里面,加入如下代码,这样即可在项目中使用EventBus
[code] dependencies { compile 'de.greenrobot:eventbus:2.4.0' }
如何使用
在MainActivity的onCreate()周期注册EventBus。[code]EventBus.getDefault().register(this);
在onDestroy()注销EventBus。
[code] @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }
这样便完成了一个EventBus的注册。现在,给Activity安上一个按钮,用这个按钮来发送消息,弹出一个Toast。
[code] @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,为刚才发送的消息。
[code]public void onEventMainThread(String str) { Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show(); }
此时,点击按钮,效果如下:
具体的流程是: 按钮触发监听事件—->EventBus发送消息—->EventBus接收消息—->处理接收到的消息
这样应该大家可以很直观的了解了EventBus的作用,这也算是第一课时的笔记吧~
大家如果喜欢我的博客,记得关注我哦。
相关文章推荐
- 斐波那契数列的前n项
- WEB小结(3)——BookStrap中标签页中载入别的网页
- VirtualBox搭建Hadoop2.7.2环境(1)——伪分布式
- EventBus 最简易的使用方式
- 插入排序
- 《少有人走的路》第一部
- 王学岗ViewPager——仿微信版(一)
- Debian FFmpeg靠谱安装
- Image Watch——OpenCV中的神器
- [原创] zabbix学习之旅七:如何远程操作被监控机器
- db_create_file_dest
- Computed column Usage
- 逐梦C++之四:四种强制类型转换
- RecyclerView 初次体验,实现增加删除条目及item长按和点击事件
- Linux下运行C程序
- 浅析JVM及其调优(四)
- HDU 1002 A + B Problem II 高精度加法
- 为iframe添加onclick事件
- 关于热部署
- 如何实现表单提交时,验证两次密码是否一致