,,EventBus是一款针对安卓优化的发布/订阅事件总线。主要功能是替意图,处理程序,广播在片段、活动、服务、线程之间传递消息。优点是开销小,代码更优雅。以及将发送者和接收者解耦。
,,,,这部分使用起来相对简单
1, eventbus。jar第三方架包
,,,,这个包不大,23 k下面是连接地址
,,,, http://download.csdn.net/download/androidstarjack/8958389
2,注册(接收)
,,,,这里需要说明,需要接收数据的地方才注册,否则不需要
,,,,即谁接收谁注册原则
,,,,
EventBus.getDefault () .register(这);
,,,,//这个是接收发送的数据
,,,,//我们暂且使用onEventMainThread接口来接收
,
,,,public void onEventMainThread (Object obj), { ,,,,,,,Log.v(“结果”,,,“ThirdActivity: +, obj.toString ()); 以前,,}>
3,发送
,,,,
,,,,EventBus.getDefault () . post(对象),,,,帖子里面是一个对象的超类,可以是自己定义的一个对象
4,注销
,,,,不用的时候别忘了注销掉(否则仍会接收,这一点和广播类似)
,,,
,,,@Override ,,,protected void onDestroy () { ,,,,,,,super.onDestroy (); ,,,,,,,EventBus.getDefault () .unregister(这个); ,,,}
onEventXXXX, onEvent函数一共有四种,前面的例子只用到一个onEvent。,
,,,,函数名,,,,,,,,,,,,含义,
ThreadMode onEvent,,,,,,,,,,,,,,,,,,,,,,,,事件处理在事件发送的那个线程执行,
PostThread onEventMainThread,,,,,,,,,,,,,,事件在主线程ui线程执行,
MainThread onEventBackgroundThread,,,,,,,,事件在一个后台线程执行(就一个后台线程)BackgroundThread onEventAsync,,,,,,,,,,,,,事件会单独启动一个线程执行(每个事件都会启动一个线程)异步其中前三个事件处理方式,都应该尽快完成。
EventBus在各模块中基本使用