EventBus不是在片段android中触发的

时间:2017-08-25 21:36:26

标签: android android-fragments greenrobot-eventbus

我在做什么:

我在[{1}}

中有一个订阅者

我已在(pt)活动中注册

MainActivity.Java

然后,我在OnStart中有一个发布者

@Override
    public void onCreate() {
        super.onCreate();
        //Register the event bus for the screen
        EventBus.getDefault().register(this);

    }


@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(BusCategories event) {
        //On Click of Categories Label

}

因此片段中的事件是主要活动中的触发调用

  1. 这是有效的,但我说我去手机里的省电模式 onPause被触发并再次返回订户永远不会得到 触发
  2. 如何妥善处理此

2 个答案:

答案 0 :(得分:0)

您应分别使用onStartonStop方法或onResumeonPause方法处理注册和取消注册。

答案 1 :(得分:0)

就我而言,如果您使用 Kotlin,则需要将事件设置为可空对象。 例如:

//this will not tigger by eventbus  
@Subscribe
fun onEvent(message Short){

}


//but will trigger by event bus  
@Subscribe
fun onEvent(message Short?){

}