LiveEventBus icon indicating copy to clipboard operation
LiveEventBus copied to clipboard

跨module无法接收消息

Open chris-jason1224 opened this issue 6 years ago • 5 comments

同一个module中可以收发消息,但是跨module无法接收

chris-jason1224 avatar Aug 29 '19 08:08 chris-jason1224

用的哪个版本?

JeremyLiao avatar Aug 29 '19 11:08 JeremyLiao

同一个module中可以收发消息,但是跨module无法接收

我试了下1.5.0跨module没有问题,你可以看下是不是以下问题:1、是否在一个进程,2、key是否相同,3、是否设置了lifecycleObserverAlwaysActive为true

JeremyLiao avatar Aug 30 '19 14:08 JeremyLiao

1.版本号是1.5.0 2.同一个进程,同一个key 3. lifecycleObserverAlwaysActive为true

场景:moduleA中点击一个按钮,发送一个消息,然后从moduleA跳转moduleB ,moduleB中注册接收器,debug发现observeInternal方法中, liveData.getVersion() 始终大于 ExternalLiveData.START_VERSION;

并且从moduleB中finish回到moduleA后,在反复点击几次按钮,liveData.version会越来越大,但是ExternalLiveData.START_VERSION始终为-1,就导致在回调onChange方法时,preventNextEvent始终是true,直接rerurn了

chris-jason1224 avatar Sep 03 '19 09:09 chris-jason1224

从你描述的场景来看,是先发送消息再注册消息接收器吗,如果是这个先后顺序,要使用observeSticky方法注册接收器才能收到之前发送的消息

JeremyLiao avatar Sep 03 '19 09:09 JeremyLiao

感谢大佬,已解决

chris-jason1224 avatar Sep 04 '19 02:09 chris-jason1224