eventbus简单使用
1.在要接受的页面注册消息
EventBus.getDefault().register(this);
2.在页面销毁时要在注册的页面销毁注册
eventBus.unregister(this);
3.在任意界面进行发送消息
EventBus.getDefault().post(new Class());
4.在注册页面写一个接受消息的方法..该方法有四个函数.以接受的对象来判定是否接收该消息
public void onEvent(Class class) {}
onEvent: 如果使用onEvent作为订阅函数,那么该事件在哪个线程发布出来的,onEvent就会在这个线程中运行,也就是说发布事件和接收事件线程在同一个线程。使用这个方法时,在onEvent方法中不能执行耗时操作,如果执行耗时操作容易导致事件分发延迟。
- onEventMainThread: 如果使用onEventMainThread作为订阅函数,那么不论事件是在哪个线程中发布出来的,onEventMainThread都会在UI线程中执行,接收事件就会在UI线程中运行,这个在Android中是非常有用的,因为在Android中只能在UI线程中跟新UI,所以在onEvnetMainThread方法中是不能执行耗时操作的。
- onEventBackground: 如果使用onEventBackgrond作为订阅函数,那么如果事件是在UI线程中发布出来的,那么onEventBackground就会在子线程中运行,如果事件本来就是子线程中发布出来的,那么onEventBackground函数直接在该子线程中执行。
- onEventAsync: 使用这个函数作为订阅函数,那么无论事件在哪个线程发布,都会创建新的子线程在执行onEventAsync.
总结
- 实质上就是在一个界面上面注册…然后在另外一个界面post一个消息..然后复写了四个方法的界面进行响应,传送一个对象作为判断依据..只要参数对的上的都响应.