ElegantBus icon indicating copy to clipboard operation
ElegantBus copied to clipboard

可以支持优先级么

Open 15615833080 opened this issue 3 years ago • 6 comments

如上所示,能否加入优先级

15615833080 avatar May 26 '22 15:05 15615833080

这个在计划中,但是一直没有找到合适的应用场景,你也可以说说你对优先级的需求,有空我会完善下

codyer avatar Jun 17 '22 05:06 codyer

感谢回复,需求场景:activity和fragment都需要收到事件,activity收到事件之后,统一做一下数据处理。fragment依赖于activity处理之后的数据。虽然可以在每个fragment中都可以对事件进行处理,但是有些繁琐。

15615833080 avatar Jun 22 '22 09:06 15615833080

感谢回复,需求场景:activity和fragment都需要收到事件,activity收到事件之后,统一做一下数据处理。fragment依赖于activity处理之后的数据。虽然可以在每个fragment中都可以对事件进行处理,但是有些繁琐。

你描述的这种场景是否可以这样理解,activity对事件A进行监听,处理完成后发送事件B,fragment只要监听事件B就行

如果你描述的场景不是以上我理解的那样,麻烦再详细描述下你需要优先级做什么处理? 高优先级的先收到事件,然后可以阻断事件传输?

codyer avatar Jun 22 '22 16:06 codyer

可以理解为单activity多fragment下 场景:账号登陆后,发送账号信息事件 activity和A、B、C、D 4个fragment都需要收到账号信息,此账号信息需要做逻辑处理,因为无优先级,所以只能在每个页面都需要进行账号信息的处理。 如果加入了优先级,我就可以在设定activity为最高优先级,在activity中处理账号信息,在fragment中直接使用处理后的账号信息

15615833080 avatar Jun 23 '22 10:06 15615833080

activity账号信息进行监听,处理完成后发送处理完的账号信息,fragment只要监听处理完的账号信息就行,这个和优先级没有关系呀,这个只要处理好信息流转就可以解决了。

codyer avatar Jun 24 '22 01:06 codyer

可以理解为单activity多fragment下 场景:账号登陆后,发送账号信息事件 activity和A、B、C、D 4个fragment都需要收到账号信息,此账号信息需要做逻辑处理,因为无优先级,所以只能在每个页面都需要进行账号信息的处理。 如果加入了优先级,我就可以在设定activity为最高优先级,在activity中处理账号信息,在fragment中直接使用处理后的账号信息

或者你想象一下,如果支持优先级,你会如何用?

优先级逻辑 1)、默认优先级为0,值越大,优先级越高,高优先级先收到消息 2)、高优先级可以阻断消息传送

codyer avatar Jun 24 '22 01:06 codyer

最新版本3.0.0已经支持优先级注册事件

codyer avatar Sep 12 '22 12:09 codyer