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

  • 相关阅读:
    android studio的lib和jniLibs
    Android Broadcast Receive
    上周热点回顾(7.18-7.24)团队
    上周热点回顾(7.11-7.17)团队
    .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点团队
    上周热点回顾(7.4-7.10)团队
    上周热点回顾(6.27-7.3)团队
    .NET跨平台之旅:将示例站点升级至ASP.NET Core 1.0团队
    上周热点回顾(6.20-6.26)团队
    上周热点回顾(6.13-6.19)团队
  • 原文地址:https://www.cnblogs.com/tutuskys/p/4921008.html
Copyright © 2011-2022 走看看