第一次接触EventBus

在使用它的时候,感觉在控件之间的通讯可能会用上,所以我就记录下来,方便自己的学习.思路不是很清晰.望见谅.!

EventBus 个人理解:  
假如有A B    2个Activity 我们在A里面注册EventBus [EventBus.getDefault().register(this) 在onCreate里面  不使用的时候就在onDestroy 里面取消注册.
]

从A里面使用Intent跳转到 B   Activity 在B里面写点击事件,或者其它操作, 假定下面是我要做的事情

EventBus.getDefault().post(
      new FirstEvent("FirstEvent btn clicked"));
这里是要告诉A  Activity 有消息来了,输出 A里面是这样写的:[ 在主线程里面运行的  FirstEvent 这个是一个实体类,里面有一个参数String msg; 和get  set 方法] 
public void onEventMainThread(FirstEvent event) {
    Log.e("harvic", "onEventMainThread收到了消息:" + event.getMsg());
}
 当触发B里面的事件,A里面就会输出这段日志信息.注意观察. 
如果我们有这样的需求:

在B里面填写信息 在A里面展示信息,我们可以用

startActivityForResult(intent,requseCode);

这个来回调,然后显示B页面的信息. 当我知道EventBus后,我觉得回调方法用起来不太方便了..

因为使用EventBus 步骤简单,存储方便 

下面是牛人博客....



入门:
http://blog.csdn.net/harvic880925/article/details/40660137   
http://blog.csdn.net/harvic880925/article/details/40787203

深入: http://blog.csdn.net/yuanzeyao/article/details/38174537


首先,给出集成步骤

1、下载EventBus库:
EvnetBus的下载地址:https://github.com/greenrobot/EventBus.git
2、将EventBus.jar放入自己工程的libs目录即可
3、定义一个事件,这个事件一旦被EventBus分发出去就是代表某一件事情发生了,这个事件就是某个观察者关心的事情(不需要继承任何类)
4、定义观察者,然后将该观察者注册到EventBus
5、由EventBus分发事件,告知观察者某一件事情发生了

6、使用完成后从EventBus中反注册观察者。




使用的时候, 要先注册 

EventBus.getDefault().register(this);//注册 onCreate 里面

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    EventBus.getDefault().unregister(this);//不用了就反注册一次
}

在EventBus中的观察者通常有四种订阅函数(就是某件事情发生被调用的方法) 
1、onEvent
2、onEventMainThread
3、onEventBackground
4、onEventAsync


例子: 

public void onEvent(FirstEvent d) {//在onCreate 里面调用的 在另一个界面 
//FirstEvent 实体类 
Log.e(TAG, "EEE " + d.getMsg());}
//SecondEvent接收函数一
public void onEventMainThread(SecondEvent event) {

   Log.e("harvic", "onEventMainThread收到了消息:" + event.getMsg());
}
上面用到的实体类列出一个:
public class FirstEvent {

   private String mMsg;
   public FirstEvent(String msg) {
      // TODO Auto-generated constructor stub
      mMsg = msg;
   }
   public String getMsg(){
      return mMsg;
   }
}

我们在使用的时候只需要  注册,反注册,更具需求写好回调方法.即可,.  遇到问题百度啦. 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值