【Android】EventBus使用相关


EventBus的使用非常简单,主要使用到以下三个方法:

 //注册EventBus    EventBus.getDefault().register(Object subscriber);    //准备事件处理方法    @Subscribe    public void onEventXXX(Object event){        //处理逻辑    ...    }    //发送消息    EventBus.getDefault().post(Object event);    //注销EventBus    EventBus.getDefault().unregister(Object subscriber);

注意在使用:

创建一个EventManager’管理类,在EventManager中判断需要注册事件的类中是否有相关的订阅方法

public static boolean isBindEventBus(Class clazz) {    Method[] ms = clazz.getDeclaredMethods();    for (Method m : ms) {        if (m.isAnnotationPresent(Subscribe.class)) {            return true;        }    }    return false;}

管理类代码:

public class EventManager {    private static EventManager sInstance = new EventManager();    private static EventBus mEventBus;    private EventManager() {        mEventBus = new CustomEventBus();    }    public static EventManager getsInstance() {        return sInstance;    }    public void post(Object event) {        mEventBus.post(event);    }    public void postSticky(Object event) {        mEventBus.postSticky(event);    }    public void register(Object event) {        mEventBus.register(event);    }    public void unRegister(Object event) {        mEventBus.unregister(event);    }    /**     * 判断需要注册事件的类中是否有相关的订阅方法     *     * @param clazz     * @return     */    public static boolean isBindEventBus(Class clazz) {        Method[] ms = clazz.getDeclaredMethods();        for (Method m : ms) {            if (m.isAnnotationPresent(Subscribe.class)) {                return true;            }        }        return false;    }    static final class CustomEventBus extends EventBus {        @Override        public void register(Object subscriber) {            if (!isRegistered(subscriber)) {                super.register(subscriber);            }        }    }}

更多相关文章

  1. Android httpClient Get&Post方法
  2. Android 给textview添加下划线的一种方法(可复用)
  3. Android中两种实现倒计时的方法
  4. Android获取系统内核版本的方法
  5. Android Studio执行Java类的main方法及解决方法
  6. Android 延迟执行方法
  7. android点击手机返回键触发事件
  8. android帮助文档打开慢的解决方法

随机推荐

  1. 检测android机器是否有GPS模块
  2. Android(安卓)图片缩放,图片圆角处理
  3. android 常用代码
  4. android Rect的使用
  5. 【Android代码片段之三】TabActivity实现
  6. Android(安卓)百度地图-实现POI的搜索(搜
  7. android O 手机关机流程与时间
  8. Layout inflation is the term used with
  9. Android之键盘点击事件
  10. android Manifest merger failed : Attri