问题在这里:
@Override
public void removeObserver(String eventType,EventObserver observer) {
synchronized (mEventObservers){
int index = mEventObservers.get(eventType).indexOf(observer);
if (index >= 0) {
mEventObservers.remove(observer);
}
}
}
红色代码改成这样就OK 了,很简单,应该是作者小小的笔误,
mEventObservers.get(eventType).remove(observer);