2012-04-13 16 views
4

Ich versuche den Guava Eventbus in Android zu verwenden, aber es scheint, dass meine abonnierte Veranstaltung nicht funktioniert ... Was mache ich falsch?Guava Eventbus funktioniert nicht

Dies ist meine Tätigkeit:

package test.eventbus; 

import com.google.common.eventbus.EventBus; 
import com.google.common.eventbus.Subscribe; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class EventBusTestActivity extends Activity { 

    EventBus eventbus = new EventBus(); 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     eventbus.register(this); 
     eventbus.post("message"); 
    } 

    @Subscribe 
    void testEvent(Object bla) { 
     Log.d("EventBus Event", bla.toString()); 
    } 

} 

Antwort

8

Abonnieren Funktionen arbeiten zu öffentlichen müssen. Oops

+1

Seien Sie vorsichtig bei der Verwendung mit Android, da die Ereignisse auf den Thread geliefert werden, die es veröffentlicht und mehr als das wird der UI-Thread sein. –

+1

Klingt wie erwartet Verhalten ... – Kurru

+2

Es gibt einen AsyncEventBus übrigens ... –