LiveEventBus
LiveEventBus copied to clipboard
如何控制粘性事件只触发一次,而不是每次都触发。
开发者你好:
场景:
我现在有一个场景是在A页面跳转B页面前会有条件的是否发送一个消息。我在B页面注册了一个粘性事件
问题: 现在的问题是,只要在A页面之前发送过消息,就算没有触发条件,在B页面一定会收到之前A页面发送的消息。
预计效果: 保证在B中注册的粘性消息只触发一次。不知道有没有能够取消特定消息的方法。
你可以试一下把autoClear设置为true,这样只要没有其他的观察者,A页面跳转B的时候observer的是一个新的observable,应该能实现你要的效果
你可以试一下把autoClear设置为true,这样只要没有其他的观察者,A页面跳转B的时候observer的是一个新的observable,应该能实现你要的效果
最好是能有一个手动removeKey的方法
你可以试一下把autoClear设置为true,这样只要没有其他的观察者,A页面跳转B的时候observer的是一个新的observable,应该能实现你要的效果
最好是能有一个手动removeKey的方法
主要是容易被滥用,如果某个observable还有observer,这个时候removeKey了,这个时候postevent收不到,用户会认为有问题
或许你在B页面收到第一次之后直接remove(this)