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

  • 相关阅读:
    一般 武胜
    Export/Import CSV files with MySQL 武胜
    关于Python中的for循环控制语句
    Linux下libxml2的使用
    Foxit PDF Reader能有效升级日文包
    Dependency introduction
    eclipse 插件更新站点
    TypeError: 'module' object is not callable 原因分析
    ubuntu11.10 安装reportlab出现“Python.h: 没有那个文件或目录”
    Windows 7 下如何调整网卡的优先级
  • 原文地址:https://www.cnblogs.com/tutuskys/p/4921008.html
Copyright © 2011-2022 走看看