android EventBus 的使用

 今天简单的介绍 一下啊 android  EventBus 的使用 android

 EventBus 在官方介绍中是订阅......什么的 一大堆  ,  在我android 菜鸟眼里 就是用来代替android 广播的  简单粗暴 效率高;post

其实用法挺简单 的   就   三步   注册(官方叫订阅)   接收   取消(取消订阅). 算了 很少说直接上代码 ;gradle

 

若是你用的是 android studio 直接在build.gradle 里添加 :ui

compile files('libs/EventBus2.4.jar') 

这个基础的就不作 过多解释了 网上 jar 类库什么的一大堆

下面是使用:
首先是发送数据
EventBus.getDefault().post(event);//这个在项目哪里均可以发的  event 参数等下讲

接收:
EventBus.getDefault().register(this);//接收以前是要先注册的  不然不会触发
onEventMainThread  也就是收不到发的event 你能够写在onCreate()等初始化方法里 
public void onEventMainThread(Event event) {
//接收方法(这是低版本固定格式后面介绍高版本使用)
//event 能够是任意类型 只能一个参数 建议封装一下扩展性强一点 下
//就把这里当作广播接收的地方用吧 更新ui 获取数据.....均可以
int type = event.getType();
switch (type) {
case 1:

break;
case 2:

}
break;
case 3:

break;
}
}


//Event 封装
public class Event {
private int type;
private Object message;

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

public Object getMessage() {
return message;
}
    public void setMessage(Object message) {
this.message = message;
}
}


到这里就介绍完了.....相信初学的都能看懂  另外有些时候 发现跟新ui有时候会不灵  多是不一样的项目某些写法上形成的  缘由还在查找中  ,可是放心用吧 通常状况不会有问题的 
而后提一下 EventBus3.0 用法都同样 只是接收方法不同了 想在
onEventMainThrea更新ui  必须在方法头部加 
@Subscribe(threadMode = ThreadMode.MainThread) //在ui线程执行 public void onUserEvent(UserEvent event) { }
@Subscribe(threadMode = ThreadMode.BackgroundThread) //在后台线程执行 public void onUserEvent(UserEvent event) { }
@Subscribe(threadMode = ThreadMode.Async) //强制在后台执行 public void onUserEvent(UserEvent event) { }
@Subscribe(threadMode = ThreadMode.PostThread) //默认方式, 在发送线程执行 public void onUserEvent(UserEvent event) { }另外 :你没必要再去约定OnEvent方法开头了该操做很简单,定义了一个hello方法,须要传入String参数,在其中操做UI操做,注意:咱们添加了注解@Subscribe,其含义为订阅者,在其内传入了threadMode,咱们定义为ThreadMode.MainThread,其含义为该方法在UI线程完成,这样你就不要担忧抛出异常啦。是否是很简单?
相关文章
相关标签/搜索