轻量级框架-EventBus

来源:互联网 发布:神话打电话软件 编辑:程序博客网 时间:2024/06/08 11:49

1.环境配置
grade的配置如下:

 compile 'org.greenrobot:eventbus:3.0.0'

2.基本使用
首先在onCreate方法添加注册方法

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        EventBus.getDefault().register(this);    }

在onDestroy方法中添加注销方法

@Override    protected void onDestroy() {        EventBus.getDefault().unregister(this);        super.onDestroy();    }

之后创建要传递的对象实体类很简单代码如下:

public class EventModel {    public EventModel(String key, String value) {        this.key = key;        this.value = value;    }    String key;    String value;}

最后发送消息然后接收消息
发送消息代码如下

button = (Button) findViewById(R.id.btn_1);button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                EventBus.getDefault().post(new EventModel("kjh","123"));            }        });

接受处理消息代码如下:

 @Subscribe(threadMode= ThreadMode.MAIN)    public void getMessage(EventModel model){        Log.e("eee",model.value);    }

完整代码如下

public class MainActivity extends AppCompatActivity {    Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        EventBus.getDefault().register(this);        button = (Button) findViewById(R.id.btn_1);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                EventBus.getDefault().post(new EventModel("kjh","123"));            }        });    }    @Override    protected void onDestroy() {        EventBus.getDefault().unregister(this);        super.onDestroy();    }    @Subscribe(threadMode= ThreadMode.MAIN)    public void getMessage(EventModel model){        Log.e("eee",model.value);    }}

个人觉得相比handler EventBus更简单些还可以不再考虑内存泄漏处理很实用也很简单,简单用法就这些。

0 0
原创粉丝点击