Android EvenBus简单实用

通常实用evenbus都是用来传 回传值,选择它简单的方法,切记如果直接传数据用Intent即可,接下来做个总结。

1.传值需要有发送方,和接收方,通常在(接收方)注册evenbus,先注册:

//注册:
 EventBus.getDefault().register(this);

//取消注册evenbus: 
@Override
    protected void onDestroy() {
        super.onDestroy();
        if (EventBus.getDefault().isRegistered(this)){
            EventBus.getDefault().unregister(this);
        }

    }

 

2.接收方写接收数据的方法:

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void getData(SearchrEvent messageEvent){
        dataBeans.addAll(messageEvent.getData());
        Log.i("ssssssqq1","jjjjhgjhgjhgjhhgfgh");
    }

这个方法是执行在主线程的,通过一个消息类Event来接收数据.

3.接下来写发送方的内容:

                //发送通知:
                SearchrEvent searchrEvent = new SearchrEvent();
                searchrEvent.setData(data);
                //发送事件调用这个方法
                EventBus.getDefault().post(searchrEvent);
                Intent intent = new Intent(SearchActivity.this, SearchResultActivity.class);
                startActivity(intent);

4.even类:举个,相传什么类型的自己定义即可:

public class SearchrEvent {

    private List data;

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
        Log.d("flrgt", "setData: "+data);
    }

    @Override
    public String toString() {
        return "SearchrEvent{" +
                "data=" + data +
                '}';
    }
}

5.完结撒花。

你可能感兴趣的:(Android EvenBus简单实用)