compile 'org.greenrobot:eventbus:3.0.0'
/**
* Created by Administrator on 2015/8/10.
*/
public class EventManager {
public static void registEventBus(Object obj) {
if (!getDefault().isRegistered(obj) && classContainsOnEventMethod(obj.getClass())) {
getDefault().register(obj);
}
}
public static void unRegistEventBus(Object obj) {
if (getDefault().isRegistered(obj) && classContainsOnEventMethod(obj.getClass())) {
getDefault().unregister(obj);
}
}
public static EventBus getDefault() {
return EventBus.getDefault();
}
@SuppressWarnings("rawtypes")
public static boolean classContainsOnEventMethod(Class clz) {
Method[] ms = clz.getDeclaredMethods();
for (Method method : ms) {
String methodName = method.getName();
if (methodName.startsWith("onEvent")) {
return true;
}
}
return false;
}
}
public class MessageEvent {
private String message;
public MessageEvent(String message) {
this.message=message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
发送:
EventManager.getDefault().post(new MessageEvent("KnowledgeupdateSuccess"));
接受(Fragment)
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
...
EventBus.getDefault().register(this);
return view;
}
@Override
public void onDestroyView() {
super.onDestroyView();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(MessageEvent event) {
String message = event.getMessage();
if (message.equals("success")){
...
}
};
接受(activity)
