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更简单些还可以不再考虑内存泄漏处理很实用也很简单,简单用法就这些。