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更簡單些還可以不再考慮內存泄漏處理很實用也很簡單,簡單用法就這些。
新聞熱點
疑難解答