订阅者没有收到来自 eventBus 的发布消息
subscriber does not get posted message from eventBus
我想在我的应用程序中使用事件总线。为此,我将事件总线库添加到我的 gradle.then 我创建了一个 class 像这样:
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中注册了事件总线:
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 传递给另一个 class:
@Override
public void onResume() {
super.onResume();
paginator = new Paginator(getContext(),totalUsersSecurity,executorService);
}
但是 totalUsersSecurity 和 executorService 为空?虽然这些变量是在 main fragment.in debug mod at android studio 中填充的,但此 public void onEvent(UserEvent event)
并非从未调用过。
谢谢你的帮助?
我正在使用 android studio 3 和 gradle:3.0.0'
你报名参加了OnStart()
的活动了吗
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
终于解决了这个问题。根据 eventBus wiki
我刚刚使用 Sticky Events。现在我收到了 post
我想在我的应用程序中使用事件总线。为此,我将事件总线库添加到我的 gradle.then 我创建了一个 class 像这样:
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中注册了事件总线:
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 传递给另一个 class:
@Override
public void onResume() {
super.onResume();
paginator = new Paginator(getContext(),totalUsersSecurity,executorService);
}
但是 totalUsersSecurity 和 executorService 为空?虽然这些变量是在 main fragment.in debug mod at android studio 中填充的,但此 public void onEvent(UserEvent event)
并非从未调用过。
谢谢你的帮助?
我正在使用 android studio 3 和 gradle:3.0.0'
你报名参加了OnStart()
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
终于解决了这个问题。根据 eventBus wiki
我刚刚使用 Sticky Events。现在我收到了 post