EventBus在各模块中基本使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EventBus在各模块中基本使用相关的知识,希望对你有一定的参考价值。
EventBus是一款针对android优化的发布/订阅事件总线。主要功能是替Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。
这部分使用起来相对简单
1、eventbus.jar第三方架包
这个包不大,23K下面是连接地址
http://download.csdn.net/download/androidstarjack/8958389
2、注册(接收)
这里需要说明,需要接收数据的地方才注册,否则不需要
即谁接收谁注册原则
EventBus.getDefault().register(this);
//这个是接收发送的数据
//我们暂且使用onEventMainThread接口来接收
public void onEventMainThread(Object obj) { Log.v("result", "ThirdActivity: " + obj.toString()); }
3、发送
EventBus.getDefault().post(object)
post里面是一个object超类,可以是自己定义的一个对象
4、注销
不用的时候别忘了注销掉(否则仍会接收,这一点和广播类似)
@Override protected void onDestroy(){ super.onDestroy(); EventBus.getDefault().unregister(this); }
onEventXXXX onEvent函数一共有四种,前面的例子只用到一个onEvent。
函数名 含义
ThreadMode onEvent 事件处理在事件发送的那个线程执行
PostThread onEventMainThread 事件在主线程-UI线程执行
MainThread onEventBackgroundThread 事件在一个后台线程执行(就一个后台线程) BackgroundThread onEventAsync 事件会单独启动一个线程执行(每个事件都会启动一个线程) Async 其中前三个事件处理方式,都应该尽快完成。
本文出自 “爬过山见过海” 博客,请务必保留此出处http://670176656.blog.51cto.com/4500575/1793635
以上是关于EventBus在各模块中基本使用的主要内容,如果未能解决你的问题,请参考以下文章
Android-无法在单独的模块中使用 org.greenrobot.eventbus