EventBot:事件未达到订阅 activity

EventBot: subscribing activity is not reached by Event

问题:
对于某些通信场景,我使用 EventBus。 我有一个事件已经被我的应用程序中的不同组件成功触发和订阅。 现在我需要一个 activity 来订阅那个事件。不幸的是,它没有达到。

问题:
我怎样才能实现 activity 也能正确订阅事件?注册 activity 有问题吗?

注:
我发现 建议使用 onStart() 和 onStop() 事件。

我的activityclass:

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.
  }

  (...)
}

事件总线class:

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;
  }
}

可能是因为你在onStop().
中注销EventBus的方式不对 更改为:

@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

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

然后确保在您的订阅者 Activity 中收到了事件:

@Subscribe(threadMode = ThreadMode.MAIN)
public void characteristicsChangeByUser(IntentChangeByUser intentChangeByUser) {
  // Do something here.
  Log.d("Activity", "IntentChangeByUser Event received");
}