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)
我没有取消注册我的事件总线对象.
添加了这个,它按预期工作:
@Override protected void onPause() {
super.onPause();
mBus.unregister(this);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2012 次 |
最近记录: |