JeremyLiao / LiveEventBus

:mailbox_with_mail:EventBus for Android,消息总线,基于LiveData,具有生命周期感知能力,支持Sticky,支持AndroidX,支持跨进程,支持跨APP
Apache License 2.0
3.83k stars 515 forks source link

同一个key且同一个observer会重复订阅 #154

Open zhafeite opened 2 years ago

zhafeite commented 2 years ago

同一个key且同一个observer会重复订阅

zhanf commented 1 year ago

确实,比如在 onResume 订阅会出现重复订阅,android 系统 LiveEvent 不会,因为有重复判断。

@MainThread private void observeInternal(@NonNull LifecycleOwner owner, @NonNull Observer observer) { ObserverWrapper observerWrapper = new ObserverWrapper<>(observer); observerWrapper.preventNextEvent = liveData.getVersion() > ExternalLiveData.START_VERSION; liveData.observe(owner, observerWrapper); }

而LiveEventBus 每次订阅都会重新创建 ObserverWrapper