【问题标题】:How to subscribe events in Otto from within a POJO service?如何从 POJO 服务中订阅 Otto 中的事件?
【发布时间】:2016-02-21 01:59:50
【问题描述】:

我想订阅 POJO 服务中的事件(Activity 或 Fragment 之外)。我的用例很简单,在应用启动时,我想从 Internet 加载内容并在 GridView 中显示。 GridView 位于 Fragment 类中。在 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 方法。我究竟做错了什么?

【问题讨论】:

  • 我没有看到任何发布 DiscoverMovieEvent 的代码。

标签: android otto


【解决方案1】:

我通过在 Fragment 中实例化 Service Impl 来解决这个问题,如下所示:

service = new DiscoverMovieServiceImpl();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    相关资源
    最近更新 更多