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