liangjingkanji / Channel

🍯 LiveData / Coroutine / Lifecycle / EventBus 特性的事件总线框架
https://liangjingkanji.github.io/Channel/
Apache License 2.0
375 stars 22 forks source link

黏性事件 #8

Open zhiguo-ren opened 3 years ago

zhiguo-ren commented 3 years ago

现在好像不支持类似eventbus的黏性事件,是否考虑添加。

liangjingkanji commented 3 years ago

抱歉看到消息但是忘记回复了. 粘性事件本质是全局变量, 会在应用意外销毁自动恢复的时候发生空指针所以不建议使用. 建议使用 Serialize 来本地序列化使用. 保证安全性. 该库使用MMKV可以将字段默认读写发生在本地磁盘上

liangjingkanji commented 3 years ago

内存告急意外销毁情况下, 内存变量会被清空(Intent的数据除外). 这个时候粘性事件会被销毁导致Activity恢复时读取到的是空指针从而发生异常. 所以我的建议是本地存储事件对象.

后续我应该会为Serialize这个库增加一个粘性字段功能: 即事件读写都发生在本地, 然后在主界面进行清空粘性事件

zhiguo-ren commented 3 years ago

👌

zs1973 commented 2 years ago

老板 粘性事件什么时候加

liangjingkanji commented 2 years ago

老板 粘性事件什么时候加

粘性事件就是全局变量, 你自己存储一个全局单例Map也能实现. 不过因为仅仅是全局变量会在应用意外销毁导致丢失数据所以我并不推荐使用所谓的粘性事件, 我并不确定Channel未来会加入粘性事件

最近在完成其他开源项目的需求所以暂时放缓Channel, 在本仓库的dev分支也正在使用Flow取代协程库中的Channel, 欢迎发起pr共同完成