EventBus:两个订阅者:没有为事件类org.greenrobot.eventbus.NoSubscriberEvent注册的订阅者

时间:2018-07-30 10:54:22

标签: android greenrobot-eventbus

AndroidStudio 3.1.2,Gradle 4.5, 在我的implementation 'org.greenrobot:eventbus:3.0.0' 中:

public class MainActivity extends AppCompatActivity {

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


@Subscribe
    public void onNotLoginEvent(NotLoginEvent notLoginEvent) {
        // do smth.
    }

这是我的MainActivity:

public class BrandDetailsActivity extends AppCompatActivity  
{
 @Override
    public void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
    }
  @Override
    public void onStop() {
        super.onStop();
        EventBus.getDefault().unregister(this);
    }

    @Subscribe
    public void onChangeNetworkRequestState(NetworkRequestStateEvent networkRequestStateEvent) {
    }

 @OnClick(R.id.myLoyaltyContainer)
    public void onClickMyLoyaltyContainer() {
                 EventBus.getDefault().post(new NotLoginEvent());
        }
    }
}

活动MainActivity要做:

  1. 注册EventBus,因为它需要接收 NotLoginEvent

  2. 当触发 NotLoginEvent 时,必须调用方法 onNotLoginEvent

这是另一项活动 BrandDetailsActivity

EventBus
  1. 注册NetworkRequestStateEvent,因为它需要接收NetworkRequestStateEvent

  2. 当发生火灾onChangeNetworkRequestState时,方法NotLoginEvent被成功调用。

  3. 发送事件MainActivity

但是NotLoginEvent未收到事件onNotLoginEvent,因此未调用方法 D/EventBus: No subscribers registered for event myporject.event.NotLoginEvent D/EventBus: No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent

在logcat中,我收到消息:

BrandDetailsActivity

如果在@Subscribe public void test(NotLoginEvent notLoginEvent) { } 上,我创建方法 test

NotLoginEvent

onNotLoginEvent()着火时成功呼叫。

但是当发生火灾事件MainActivity时,我需要在NotLoginEvent中调用方法CN=John Mayor,OU=Users,OU=NA,OU=Local,DC=domain,DC=application,DC=com 。 我该怎么做?

0 个答案:

没有答案