奥托活动巴士在单个帖子上接收多个活动

clo*_*ith 3 android otto dagger

我正在使用Otto和Dagger.我的一些活动仅在一个帖子上多次收到.

在我看来,发布事件:

@Inject Bus mBus;

在构造函数中:

((MyApplication) mContext.getApplicationContext()).inject(this);  

view.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(final View view) {
    Log.d(TAG, "Sending SearchResultClickedEvent.");
    mBus.post(new SearchResultClickedEvent(mModel.getPlaceId()));
  }
});
Run Code Online (Sandbox Code Playgroud)

在我的订阅活动的超类中:

@Inject protected Bus mBus;

onCreate():

((HarryApplication) getApplicationContext()).inject(this);

在订阅活动中:

@Subscribe
public void on(SearchResultsRecyclerViewHolder.SearchResultClickedEvent event) {
  Log.d(TAG, "SearchResultClickedEvent received.");
}
Run Code Online (Sandbox Code Playgroud)

单击后的日志:

03-26 12:59:51.496  24613-24613/D/SearchResultView? Sending SearchResultClickedEvent.
03-26 12:59:51.496  24613-24613/D/Subscriber?SearchResultClickedEvent received.
03-26 12:59:51.497  24613-24613/D/Subscriber?SearchResultClickedEvent received.
03-26 12:59:51.499  24613-24613/D/Subscriber?SearchResultClickedEvent received.
Run Code Online (Sandbox Code Playgroud)

clo*_*ith 7

我没有取消注册我的事件总线对象.

添加了这个,它按预期工作:

  @Override protected void onPause() {
    super.onPause();
    mBus.unregister(this);
  }
Run Code Online (Sandbox Code Playgroud)