呃,要跟上时代的步伐,因此来学习一下EventBus(话说好像如今学也已经算是跟不上了。。嘛。。无论了,一步一步往前追,应该还来得及吧)。java
转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50625105git
看了网上一些的关于eventBus的文章,上来就叽里呱啦一大堆总结啊,概述啊。。上个原理图啊什么的。。 这样写虽然好,可是总会给一些初学者打一些退堂鼓。看到那么复杂就不想看下去了。。 因此在本身学习的过程当中,想写一些直观的,精简的,适合初学者的博客。github
额。。由于笔者也是刚刚接触,因此暂时咱们认为他是用来传递消息的东东(相似于handler啊 intent啊等等)。这样也比较好理解。 暂时撇开观察者模式不说,直接来看他的用法。markdown
1.在gradle里面,加入以下代码,这样便可在项目中使用EventBuside
dependencies { compile 'de.greenrobot:eventbus:2.4.0' }
EventBus.getDefault().register(this);
@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,为刚才发送的消息。post
public void onEventMainThread(String str) {
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}
此时,点击按钮,效果以下:
学习
具体的流程是: 按钮触发监听事件—->EventBus发送消息—->EventBus接收消息—->处理接收到的消息gradle
这样应该你们能够很直观的了解了EventBus的做用,这也算是第一课时的笔记吧~this
下一篇: EventBus的经常使用函数 你们若是喜欢个人博客,记得关注我哦。