Android EventBus的简单使用

EventBus是一个Android事件发布/订阅轻量级框架

简化了应用程序内各组件间、组件与后台线程间的通信

使用场景:应用程序内各组件间、组件(fragment, Activity, Service等)与后台线程间的通信。

    大白话讲解(略抽象):这个框架相当于 我们 与 杂志社 之间的关系 ,当我们向杂志社订阅了一份杂志,那它就会在特定的是时间送到你手里,当然如果你不想要了也可以退订。还有一个简单的概念 就是:杂志社不可能只想我们服务 当别人也订阅了相同的杂志 那它也得给别人送。你也可以当VIP 让它只为你服务。

依赖文件 :

implementation'org.greenrobot:eventbus:3.2.0'

 开始应用:

    1、 订阅杂志

订阅

    2 、接收消息  === 相当于 动画里 房子外的邮箱


邮箱

       注解介绍:★★★★★★★重要程度 满颗星

@Subscribe( threadMode = ThreadMode.BACKGROUND,sticky =true )

threadMode =  ThreadMode.BACKGROUND :  事件主线程里发出来 那么该事件就会在新的线程里运行。 如果是子线 则事件直接在发布者的线程中执行。 这个线程模式下 禁止更新UI。

threadMode = MAIN:事件的处理会在主线程中执行,常用于更新UI。

threadMode = POSTING(默认)该事件在哪个线程发布出来的,事件的处理 就会在哪个线程中运行  尽量不要做耗时操作

threadMode = ASYNC  这个最简单了 不管事件从哪个线程中发出来  它都开启子线程运行   禁止更新U。

sticky = true  粘性事件  :大白话:邮局派人给你去送邮件 如果你不在家 他放在你的邮箱里 保证你想要就能拿到   可以先不注册。

sticky = false  普通事件 :大白话:邮局派人给你去送邮件 如果你不在家 他就给你丢掉了 让你想要也要不到         必须注册。

接收消息的方法   就可以从参数event里get信息


    方法 使用public void  方法名随意  参数 最好使用JavaBean 因为要传递信息

 3  、退订杂志

         不需要了 就退掉  防止资源浪费


以上是订阅EventBus的简单逻辑

    发送杂志

                EventBus.getDefault().post(  new Event()   ); 

放张图片看的清楚

发送杂志的组件(fragment, Activity等)只管发送就行

而需要这份杂志的组件 需要订阅   接收  退订

你可能感兴趣的:(Android EventBus的简单使用)