问题:
对于某些通信方案,我使用的是EventBus。
我的应用程序中有一个已成功触发并由不同组件订阅的事件。
现在我需要activity
来订阅该事件。不幸的是没有达成。
问题:
我怎样才能实现activity
正确订阅事件呢?是注册activity
?
注意:
我发现post建议使用onStart()和onStop()事件。
我的活动课程:
public class MachineActivity extends AppCompatActivity{
(...)
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void characteristicsChangeByUser(IntentChangeByUser intentChangeByUser) {
// Do something here.
}
(...)
}
EventBus类:
public class IntentChangeByUser {
int position;
int value;
public IntentChangeByUser(int position, int value){
this.position = position;
this.value = value;
}
public int getPosition() {
return position;
}
public int getValue() {
return value;
}
}
答案 0 :(得分:1)
可能是因为您错误地在Documents
中取消注册了EventBus
改为:
onStop()
然后在您的订阅者活动中确保收到了活动:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}