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

原文地址:https://www.cnblogs.com/tutuskys/p/4921008.html