Guava Eventbus не работает

Я пытаюсь использовать шину событий Guava в Android, но мое подписанное событие, похоже, не работает... Что я делаю неправильно?

Это моя деятельность:

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());
    }

}

person Kurru    schedule 13.04.2012    source источник


Ответы (1)


Для работы функции подписки должны быть общедоступными. Упс

@Subscribe
public void testEvent(Object bla) {
    Log.d("EventBus Event", bla.toString());
}
person Kurru    schedule 13.04.2012
comment
Будьте осторожны при использовании этого с Android, потому что события доставляются в потоке, который их опубликовал, и более того, это будет поток пользовательского интерфейса. - person Bobby Hargett; 15.07.2012