如何在POJO服务中订阅Otto中的活动?

时间:2016-02-19 00:54:07

标签: android otto

我想订阅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方法。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

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

Dim tba = Enumerable.Range(1, 1000)
Dim final = tba.ToList()
For Each x As Integer In Enumerable.Range(1, (1000000 / 1000) - 1)
    final.AddRange(tba)
Next
'final is your result