在开发过程中,我们有时会遇到需要发消息通知的地方,有的人选择使用广播发送,这是系统自带的,这里有一个jar包提供了这种功能,这个就是EventBus。
以下是使用方法。
1,首先定义一个用来区别接收的类。
public class EventBusAction { //活动详情关注改变,通知刷新列表 public static String EVENTBUS_ACTION_DETAILS_FOLLOW = "com.change";//此处是自己定义的接收类型。 }2,在你需要发送消息的地方,进行发送消息。
EventBus.getDefault().post(EventBusAction.EVENTBUS_ACTION_DETAILS_FOLLOW);3,在你接收的地方,首先在Oncreate里面进行注册。
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EventBus.getDefault().register(this); }4,在你接收的地方,然后在OnDedtory里面进行解注册。
@Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }5,写接收的方法,进行你需要的操作。
@Subscribe(threadMode = ThreadMode.BACKGROUND) public void foucusChanged(String s) { if (s.equals(EventBusAction.EVENTBUS_ACTION_DETAILS_FOLLOW )) { //此处方法就是用来判断你在发送的时候,发送action是什么类型,也是一种类似于 过虑的意思。
} }记:接收的方法必须是public,否则在注册时会报错。