EventBus事件总线的使用

        今天突然得知有事件总线这个东西,正好又在等后台调接口,就去网上搜罗一个这方面的学习资料学习一下,然后我就震惊了,特么还有这么好的东西,我咋不早点知道,深的我也不知道,就浅谈一下他的使用和一些不是坑的坑,首先是依赖EventBus的包,这个android程序员应该都很熟练了吧,我选的是:

compile'org.greenrobot:eventbus:3.0.0'

,反正我只是个使用者,对其就不多加评述了,没意义,接下来就进入正题,如何使用,使用他很方便,一共四步,


一:创建一个自定义类,这个类可以是空的,需要构造函数:

EventBus事件总线的使用_第1张图片


二:就是在接受消息的界面注册Eventbus了:


有注册就有反注册了:

三:写一个公开的方法,传参就是你自定义的类了:

EventBus事件总线的使用_第2张图片
,注意“@Subscribe”这个注解,他是不会自己加上去的,需要你自己加上去,不然就算你写完,就会报错,

我第一次使用的时候就是忘了这个,然后报错,看着错我是一脸懵逼,因为他指向的是注册那行代码,可是错却是确实这个公开方法,不过还好我的后盾,一个android群的群主,他会时不时写一些博客,也会分享一些自己的经验,我只是群里的一个小菜鸟,但是有兴趣的也可以加群来讨论一下:121606151。


四:就是在发送的页面里发送消息了:

是不是很简单,我用完后是后悔,这东西比广播好多了,而且也是时下比较流行的东西,当然Eventbus不止这些东西了,要不然也不能说是好东西啊,接下来都是在注解里做的事了,

EventBus事件总线的使用_第3张图片

,这里面有四个属性,分别的意思是BACKGROUND(在后台线程执行,且线程是唯一的),POSTING(默认模式,就是在主线程内做操作,当然就不能做耗时操作了),MAIN

(这个和handler相似,在主线程调用时则会放在handler执行),ASYNC(这个就是开辟分线程了,和new Thread().start();类似)。以上都是各种线程,有线程就有优先级,优先级的设置则是通过priority设置,他为int值值越大,则优先级越高,想阻断则是EventBus.getDefault().cancelEventDelivery(Bin.class);

最后还有一个东西,则是粘性事件,这个也是从群主博客上看到的 ,地址在这 ,具体的为sticky设置为true,这样他每次接到消息时会去找有没有历史纪录,有则直接拿出来,然后再去执行新的,好像是这样,我对Eventbus的使用就这么多,当然给自己看的居多。


拜谢大神!!!!

你可能感兴趣的:(EventBus事件总线的使用)