android EvenBus
2016-03-10 22:23
387 查看
组件间通信框架 EvenBus
在项目中首先添加EvenBus的jar包
整体过程大致可以分为3类:
1.在onCreat中使用EvenBus.getInstatnce().register(this);
2.使用EventBus.getDefault().post(object)进行事件的分发。
onEvenMainThread, (方法在UI线程执行)
onEvenPostThread,(方法在当前发布事件的线程执行)
onEventBackgroundThread,(如果在非UI线程发布的事件,则直接执行,和发布在同一个线程中。如果在UI线程发布的事件,则加入后台任务队列,使用线程池一个接一个调用)
onEventAsyns(加入后台任务队列,使用线程池调用,注意没有BackgroundThread中的一个接一个)
接收post传递的参数并进行操作。
3.在onDestroy中使用EventBus.getDefault().unregister(this);
一.第一步中,对事件进行订阅,调用EvenBus.getInstatnce().register(this)后,会遍历该类下所有以onEvent开头的方法,存在一个Map中。
二.第二步,通过post中传递的参数类型,进行判断执行哪一个onEven方法。其实在第一步的Map中的key就是post的class类型。
三。第三步,注销事件订阅。
关于EventBus的使用,如果需要使用很多
如果项目里面有大量的事件交互,那么还是可以通过
如果多个方法参数都一样,post一个此参数,会多个方法调用;
使用EventBus的时候,创建一个事件类,把你的每一个参数(或者可能发生冲突的参数),封装成一个类。
public class Event{
public static 参数;
............
}
在项目中首先添加EvenBus的jar包
整体过程大致可以分为3类:
1.在onCreat中使用EvenBus.getInstatnce().register(this);
2.使用EventBus.getDefault().post(object)进行事件的分发。
onEvenMainThread, (方法在UI线程执行)
onEvenPostThread,(方法在当前发布事件的线程执行)
onEventBackgroundThread,(如果在非UI线程发布的事件,则直接执行,和发布在同一个线程中。如果在UI线程发布的事件,则加入后台任务队列,使用线程池一个接一个调用)
onEventAsyns(加入后台任务队列,使用线程池调用,注意没有BackgroundThread中的一个接一个)
接收post传递的参数并进行操作。
3.在onDestroy中使用EventBus.getDefault().unregister(this);
一.第一步中,对事件进行订阅,调用EvenBus.getInstatnce().register(this)后,会遍历该类下所有以onEvent开头的方法,存在一个Map中。
二.第二步,通过post中传递的参数类型,进行判断执行哪一个onEven方法。其实在第一步的Map中的key就是post的class类型。
三。第三步,注销事件订阅。
关于EventBus的使用,如果需要使用很多
观察者模式。比如,你正在开发一个东西,需要监听网络状态变化,App的安装情况,内容的下载情况。当存在很多
观察者模式,「如何将这些事件通知到监听者」是可以复用的模块,这就是
EventBus存在的意义。这里需要大家想明白一个问题,
观察者模式本身就是一个可以复用的模块。
如果项目里面有大量的事件交互,那么还是可以通过
EventBus来实现,否则还是推荐自己在模块内部实现
观察者模式
如果多个方法参数都一样,post一个此参数,会多个方法调用;
使用EventBus的时候,创建一个事件类,把你的每一个参数(或者可能发生冲突的参数),封装成一个类。
public class Event{
public static 参数;
............
}
相关文章推荐
- android
- Android NagivationView设置了监听无效?DrawLayout你必须知道的东西!!!
- Android Material Design(2) ToolBar,NavigationView以及DrawerLayot的使用
- android processBar and RatingBar
- 彩笔对android中ninepatch的理解
- 2016年3月11日Android实习日记
- Android学习之Drawable(一)
- Android四大组件之一服务
- [android] 常用数据适配器ArrayAdapter
- Android学习之Drawable(一)
- 【黑马Android】(02)短信发送器/布局演示/android下单位/android下Junit/保存数据/android下权限/xml解析和序列化
- Android的Fragment中onActivityResult不被调用的解决方案
- Android DEX自动拆包及动态加载简介
- 【记录】Android画板-模块
- 【Android笔记】之Android Studio的安装与配置
- Android 各个状态的区别
- Android开发小知识-TimePickerDialog和DatePickerDialog的使用
- Android动画解析(二)—— Tween Animation(补间动画)
- 安卓实现按钮可随意拖动(同时解决click和touch事件的冲突)
- android定位的实现