软件编程
位置:首页>> 软件编程>> Android编程>> Android 消息分发使用EventBus的实例详解

Android 消息分发使用EventBus的实例详解

作者:lqh  发布时间:2022-12-23 06:28:28 

标签:Android,EventBus

Android 消息分发使用EventBus的实例详解

1. AndroidStudio使用


dependencies {

//最新版本
 compile 'org.greenrobot:eventbus:3.0.0'

//可以翻倍提高EventBus使用效率
 provided 'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1'

}

2. 在基类Activity中配置


/**
* Activity基类
*/
protected EventBus eb;

@Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

//单例模式获取到实例并注册
   eb = EventBus.getDefault();
   eb.register(this);

}

@Override
 protected void onDestroy() {
   //反注册
   eb.unregister(this);
   super.onDestroy();
 }

//主线程
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMainEvent(EventBean event) {
}

//主线程 粘性(比如传递intent使用)
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onMainStickEvent(EventBean event) {
}

//后台
@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void onBackgroundEvent(EventBean event) {
}

//重新开启一个线程来执行
@Subscribe(threadMode = ThreadMode.ASYNC)
public void onAsyncEvent(EventBean event) {
}

一般情况下,常用重写onMainEvent ( ) 方法即可。

3. 创建自定义消息实体


//根据不同需求自定义
/**
* 自定义Event消息
*/
public class EventBean {

public int id;//类型标识

public Object data;//数据对象

//省略constructor & getter & setter
}

4. 发送消息


继承自基类Activity后:

eb.post(new EventBean(1, "data"));

//粘性
eb.postSticky(new EventBean(1, "data"));

5. 消息处理

根据数据处理的需求重写基类的4个方法即可。

来源:http://blog.csdn.net/baidu_25797177/article/details/51783213

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com