美文网首页Android
Android EventBus的简单使用

Android EventBus的简单使用

作者: 啥也写不出来的安卓技术人员 | 来源:发表于2020-02-22 21:14 被阅读0次

    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的简单使用

        本文链接:https://www.haomeiwen.com/subject/xtjrqhtx.html