zoukankan      html  css  js  c++  java
  • EventBus框架

    两个activity之间的通信方法:broadcast、intent、bundle、android四大存储类型(preferences、fille、数据库和contentprovider)、继承application以及EventBus。具有解耦的能力,增加了类型安全,并且Event类可以定义成任何类型。当然不仅仅局限于两个activity之间的通信。可使用在:activity、fragment、service等组件之间的交互

    四个简单的使用步骤:1、定义一个Event事件 2、注册一个订阅者register 3、发布一个事件post 4、接收这个事件 onEvent

    在需要接收消息的页面注册。不要忘记在销毁的时候取消掉。

    函数名

    含义

    TreadModle

    onEvent

    事件处理在事件发送的那个线程执行

    PostThread

    onEventMainThread

    事件在主线程-UI线程执行

    MainThread

    onEventBackgroundThread

    事件在子线程,则接收同样线程;否则,启动一个子线程

    BackgroundThread

    onEventAsync

    事件会单独启动一个线程执行(每个事件都会启动一个线程)

    Async

    对表格的详细解释:

    onEvent:

    使用onEvent来接收事件,接收事件和分发事件在一个线程中执行。

     

    onEventMainThread:

    使用onEventMainThread来接收事件,不管在UI线程post消息还是在非UI线程post消息都可以调用onEventMainThread方法更新UI操作。

     

    onEventBackgroundThread:

    如果post在子线程运行,那么接收事件直接在同样线程;如果在UI线程post,那么会启动一个子线程运行接收事件。不能更新UI操作。与onEvent一个区别:UI线程post消息会开启一个子线程回调方法。

     

    onEventAsync:

    无论在哪个线程post,接收者都会在另外一个子线程执行。

     

     发送方不需要注册,接收方在oncreate方法里注册,在ondestroy注销。

    根据发送的类型来接收。

    简单的demo

  • 相关阅读:
    Zookeeper Acl权限 超级用户权限 怎么跳过ACL密码/账户验证
    白名单与黑名单
    通过mstsc复制粘贴失败需要重新启动RDP剪切板监视程序rdpclip.exe
    go命令帮助
    go build 与go install
    1.Python编程基础
    使用 JMeter 进行压力测试
    js控制手机保持亮屏的库,解决h5移动端,自动息屏问题
    Linux安装配置redis 、启动redis、redis设置密码
    Linux安装部署FTP服务器
  • 原文地址:https://www.cnblogs.com/tutuskys/p/4921008.html
Copyright © 2011-2022 走看看