定义事件数据
自定义一个事件类,用于传输数据
public class Event {
}
接收事件
一、在生命周期开始与结束的地方注册和注销EventBus@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EventBus.getDefault().register(this); }
@Override protected void onDestroy() { EventBus.getDefault().unregister(this); super.onDestroy(); }二、定义一个接收事件方法
@Subscribe(threadMode = ThreadMode.MAIN)//在主线程接收 public void onEvent(Event event) { Toast.makeText(this,"收到EventBus发送过来的信息",Toast.LENGTH_SHORT).show(); }发送事件
EventBus.getDefault().post(new Event());
注:@Subscribe(threadMode = ?)为接收的线程模式
1 ThreadMode: POSTING //接收事件与发送事件所在的线程相同
2 ThreadMode: MAIN //接收事件所在的线程为主短路线
3 ThreadMode: BACKGROUND //如果发送事件所在线程不是主线程则接收与发送为同一线程,如果发送事件所在线程为主线程,则接收事件在一个独立线程接收
4 ThreadMode: ASYNC //发送与接收永远都不在同一线程中