2015-11-08 77 views
2

我有這個非常簡單的聲明EventBus拋出的公共方法的onEvent(消息消息)當我註冊

@Override 
public void onStart() { 
    super.onStart(); 
    EventBus.getDefault().register(this); 
} 

@Override 
public void onStop() { 
    EventBus.getDefault().unregister(this); 
    super.onStop(); 
} 

public void onEventMainThread(RefreshMessage message){ 
    ToastUtils.showLongToast(getActivity(), message.getRefresh() ? "ok":"false"); 
} 

我不知道爲什麼它仍然拋出

沒有公開的方法稱爲onEvent

請讓我知道,如果我錯過了什麼。另外我片段延伸的抽象類

+0

實現我自己的簡單EventBus'建設 - > clean'簡化版,幫助嗎? –

+0

nope,沒有幫助。這是一個運行時錯誤btw – Lester

回答

0

因爲它採取了這麼長時間調試錯誤,我使用一個單獨

public class EventBusMainThread { 
private static EventBusMainThread selfInstance; 

private List<EventBusSubscriber> subscribers; 

public EventBusMainThread() { 
    this.subscribers = new CopyOnWriteArrayList<>(); 
} 

public static EventBusMainThread getInstance(){ 
    if(selfInstance == null) 
     selfInstance = new EventBusMainThread(); 
    return selfInstance; 
} 

public synchronized void register(EventBusSubscriber subscriber){ 
    subscribers.add(subscriber); 
} 

public synchronized void unregister(EventBusSubscriber subscriber){ 
    subscribers.remove(subscriber); 
} 

public void post(Object message){ 
    for(EventBusSubscriber subscriber : subscribers){ 
     subscriber.onEvent(message); 
    } 
}}