Android 订阅者未从eventBus收到已发布的消息

Android 订阅者未从eventBus收到已发布的消息,android,greenrobot-eventbus,Android,Greenrobot Eventbus,我想在我的应用程序中使用eventbus。为此,我将eventbus库添加到gradle中。然后,我创建了一个类似以下的类: public class UserEvent { private User eUser; // esup user model private String domain; private String securitySrv; private Cookie cookie; private int totalUsersSecurity; private Executor

我想在我的应用程序中使用eventbus。为此,我将eventbus库添加到gradle中。然后,我创建了一个类似以下的类:

public class UserEvent {

private User eUser; // esup user model
private String domain;
private String securitySrv;
private Cookie cookie;
private int totalUsersSecurity;
private ExecutorService executorService;
// constructor and getter
然后我在主片段中添加了以下几行,最后我发布了我的消息:

UserEvent userEvent = new UserEvent(eUser, domain, securitySrv, cookie,
totalUsersSecurity, executorService);
EventBus.getDefault().post(userEvent);
在主片段中,我有一个ViewPager,这个页面加载了另一个片段,名为AllUsersFragment

在AllUsersFragment first中,我注册了eventbus:

EventBus bus = EventBus.getDefault();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_layout, container, false);
    bus.register(this);
    return rootView;
}
然后我写了这个方法:

    @Subscribe
public void onEvent(UserEvent event) {
    securitySrv = event.getSecuritySrv();
    cookie = event.getCookie();
    totalUsersSecurity = event.getTotalUsersSecurity();
    executorService = event.getExecutorService();

}
在我的resume方法中,我希望通过构造函数将
UserEvent
从eventbus传递到另一个类:

@Override
public void onResume() {
    super.onResume();
    paginator = new Paginator(getContext(),totalUsersSecurity,executorService);

}
但是totalUsersSecurity和executorService为空?虽然这些变量是在android studio的debug mod的main fragment.in中填充的,但从未调用过这个
public void-onEvent(UserEvent事件)
。 谢谢你的帮助


我正在使用android studio 3和
gradle:3.0.0'

您是否已在
OnStart()上注册该活动


最后我解决了这个问题。根据


我只使用了粘性事件。现在我收到了我的帖子

我已经在onCreateView()注册了
 @Override
 public void onStart() {
     super.onStart();
     EventBus.getDefault().register(this);
 }

 @Override
 public void onStop() {
     super.onStop();
     EventBus.getDefault().unregister(this);
 }