EventBus入门使用流程

使用流程##

  1. 增加EventBus依赖(eclipse增加jar包)
  2. 在需要接收eventBus的界面中进行注册与反注册
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EventBus.getDefault().register(this);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }
  1. 定义一个用于接收事件的方法
@Subscribe(threadMode = ThreadMode.MAIN) //注意:这里的注解不加及方法修饰符不为public会报异常
    public void onEventMainThread(MessageEvent event) {
        //do something
    }
  1. 如果想指定接收的方法该如何操作呢?
    这里举个例子:
@Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventMainThread(MessageEvent event) {
        //do something
    }
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventMainThread(String str) {
        //do something
    }

5.post一个消息

EventBus.getDefault().post("FirstEvent btn clicked");

上面是两个接收EventBus事件的函数,看见哪里有区别了吗?没错!EventBus会根据你post的消息的类型进行选择对应的接收函数,所以说我们要想指定我们想要接收的函数,只要处理好函数的参数类型即可。

注意事项##

  1. 只有在需要接收EventBus消息的界面才需要对EventBus进行注册及反注册
  2. 接收EventBus消息的函数需要增加@Subscribe 注解,否则会报异常
  3. 接受EventBus消息的函数需要定义成public,否则会报和第二个相同的异常

你可能感兴趣的:(EventBus入门使用流程)