博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EventBus 最简易的使用方式
阅读量:4689 次
发布时间:2019-06-09

本文共 1623 字,大约阅读时间需要 5 分钟。

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

转载请注明出处:

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

现在开始吧

关于EventBus是什么

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

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

  • 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的作用,这也算是第一课时的笔记吧~

下一篇:

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

转载于:https://www.cnblogs.com/muyuge/p/6333537.html

你可能感兴趣的文章
mybatis的二表联合查询
查看>>
全排列与 康托展开
查看>>
eclipse不格式化注释
查看>>
C语言结构体初始化(转载)
查看>>
系统剪切板的使用UIPasteboard
查看>>
arcgis for flex 学习笔记(一)
查看>>
Bootstrap如何禁止响应式布局 不适配
查看>>
C语言流程控制
查看>>
多线程—4种线程池
查看>>
函数(1)
查看>>
ip xfrm命令是做什么的?
查看>>
AtCoder - 2567 RGB Sequence
查看>>
谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
查看>>
Jquery的parent和parents(找到某一特定的祖先元素)
查看>>
es6 属性及常用新属性汇总
查看>>
ASP.NET MVC 缓存使用示例
查看>>
Hash算法
查看>>
Android实现传感器应用及位置服务
查看>>
测试用例
查看>>
关于typedef的用法总结
查看>>