EventBus
用法 :
首先注册这个类
- EventBus.getDefault().register(this);
在任何地方 任何线程 都可调用
- EventBus.getDefault().post(new Event(0));
最后 将调用到 注册类的此函数
- public void onEventMainThread(Event event)
- {
- }
备注:
根据Event类(自定义的任何类)选择调用哪个函数,函数名在下面有说明
在使用后 应取消注册
- public void onDestroy()
- {
- super.onDestroy();
- // Unregister
- EventBus.getDefault().unregister(this);
- }
EventBus包含4个ThreadMode:PostThread,MainThread,BackgroundThread,Async
MainThread我们已经不陌生了;我们已经使用过。
具体的用法,极其简单,方法名为:onEventPostThread, onEventMainThread,onEventBackgroundThread,onEventAsync即可
具体什么区别呢?
onEventMainThread代表这个方法会在UI线程执行
onEventPostThread代表这个方法会在当前发布事件的线程执行
onEventBackgroundThread这个方法,如果在非UI线程发布的事件,则直接执行,和发布在同一个线程中。如果在UI线程发布的事件,则加入到一个后台的单线程队列中去
onEventAsync代表这个方法直接在独立的线程中执行