public abstract class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isApplyEventBus())
EventBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (isApplyEventBus())
EventBus.getDefault().unregister(this);
}
@Subscribe
public void onEventMainThread(EventCenter eventCenter) {
if (eventCenter != null) {
onEventComing(eventCenter);
}
}
protected abstract boolean isApplyEventBus();
protected abstract void onEventComing(EventCenter eventCenter);
}
子类重写
@Override
protected boolean isApplyEventBus() {
return true;
}
@Override
protected void onEventComing(EventCenter eventCenter) {
Toast.makeText(this, "main", 0).show();
}
EventBus.getDefault().post(new EventCenter<>(0));
public class EventCenter<T> {
/**
* reserved data
*/
private T data;
private int position;
/**
* this code distinguish between different events
*/
private int eventCode = -1;
public EventCenter(int eventCode) {
this(eventCode, null);
}
public EventCenter(int eventCode, T data) {
this.eventCode = eventCode;
this.data = data;
}
/**
* get event code
*
* @return
*/
public int getEventCode() {
return this.eventCode;
}
/**
* get event reserved data
*
* @return
*/
public T getData() {
return this.data;
}
public int getPosition() {
return this.position;
}
public void setPosition(int position) {
this.position = position;
}
}
此代码摘录自 https://github.com/yezhidong/Memo