Как подписаться на события в Otto из службы POJO?

Я хочу подписаться на события в службе POJO (вне Activity или Fragment). Мой вариант использования прост: при запуске приложения я хочу загрузить контент из Интернета и отобразить его в GridView. GridView находится внутри класса Fragment. Изнутри фрагмента onResume я публикую событие Otto и пытаюсь подписаться внутри службы POJO:

Класс фрагмента

@Override
public void onResume() {
    super.onResume();
    PopularMoviesApplication.getEventBus().register(this);
    PopularMoviesApplication.getEventBus().post(produceDiscoverMovieEvent());
}
    @Produce
    public DiscoverMovieEvent produceDiscoverMovieEvent() {
        return new  DiscoverMovieEvent("popularity.desc");
    }

Класс DiscoverMovieServiceImpl

public class DiscoverMovieServiceImpl {


        public DiscoverMovieServiceImpl() {
            PopularMoviesApplication.getEventBus().register(this);
        }

        @Subscribe
        public void getMovies(DiscoverMovieEvent event) {
            ...
}

Метод getMovies никогда не вызывается. Что я делаю не так?


person Sai    schedule 19.02.2016    source источник
comment
Я не вижу никакого кода, который публикует DiscoverMovieEvent.   -  person Doug Stevenson    schedule 19.02.2016


Ответы (1)


Я исправил это, создав экземпляр Service Impl во фрагменте, как показано ниже:

service = new DiscoverMovieServiceImpl();
person Sai    schedule 20.02.2016