微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

channel 或 mutablesharedflow ,哪个是已弃用的 localbroadcastmanager

如何解决channel 或 mutablesharedflow ,哪个是已弃用的 localbroadcastmanager

过去,我在聊天和出租车应用程序中使用 LocalbroadcastManager and EventBus,但现在已弃用或不推荐使用它们。

我打算用像 mutablesharedflow or channel 这样的新数据结构替换它们, 我想知道哪个更适合我的情况?或者其他数据结构?

解决方法

Roman Elizarov 开始,通道被添加为协程间通信原语。

您不能使用通道以允许多个订阅者独立接收和响应事件或状态更新的方式分发事件或状态更新。

所以他们引入了Flow。但是 Flow 是一个冷的 observable,每个订阅者都获得自己的数据(独立于其他订阅者)。使用 SharedFlow,您将获得一个热的 observable,它独立于任何订阅者而发出。

您可以对 ConflatedBroadcastChannel 执行相同操作。但是JetBrains 建议使用 Flow 而不是 Channels,因为它们的 API 更简单。

所以如果你想迁移到 Coroutines 并且你需要一个热门的 observable 多个订阅者可以收听,你应该选择 SharedFlow

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。