Closed rayzeng0221 closed 1 year ago
请fork仓库在demo中复现此问题
请fork仓库在demo中复现此问题
我刚刚取消了使用动态键名,就是把第二个参数去掉,就是正常的了,是不是你的动态键名的 代码有点问题?今天要急着上线 ,愁死了
本项目单纯是开源分享互助目的
你总是提和你项目中业务相关的问题, 我又不能看你项目源码我无法分析问题, 如果你有类似问题建议查看Serialize
源码(实现源码仅仅四五十行代码而已)或者在demo中复现问题
如果你觉得本框架给你带来很多问题可以有理由选择其他框架
如果你觉得着急就请先fork仓库复现问题, 而不是在这里重复无意义的问题描述
请fork仓库在demo中复现此问题
我刚刚取消了使用动态键名,就是把第二个参数去掉,就是正常的了,是不是你的动态键名的 代码有点问题?今天要急着上线 ,愁死了
动态键名仅仅是一个参数, 属于kotlin基本语法, 不存在什么黑科技
如果你升级了Serialize-3.0, 建议先查看下更新日志(大版本升级存在破坏性迁移), 它存在第一次丢失旧数据(没有使用mmapId情况下)
如果你升级了Serialize-3.0, 建议先查看下更新日志(大版本升级存在破坏性迁移), 它存在第一次丢失旧数据(没有使用mmapId情况下)
问题找到原因了,是因为我的动态键名带用户ID ,然后这个用户ID 又是你这个库定义的其中一个key,如果直接这样用就会出现我说的 那个问题。我现在改成了 每次进入首页 用一个全局变量来保存这个本地存储用户ID,然后动态键名的用户ID就替换成这个全局变量。这种用法我不知道算是本身不允许这样使用 还是 属于Bug,这个需要大佬看一下啦?
// 用户ID var userId:String by serialLazy("") // 是否显示P80引导页 var isShowHomeGuideP80: Boolean by serialLazy(true,"isShowHomeGuideP80_${userId}")
这种用法,只要是安装应用后,第一次改变Flag,然后退出APP,重新打开APP,就是必现的,会重新恢复默认值
当前问题有发现原因或者依然存在吗?
我有个引导页,执行完引导页后,改变Flag,然后立马杀掉进程,重新打开APP 又重新出现引导页了,打印值,又变成默认值,目前就是第一次会出现,第二次杀进程再进入APP就是正常,这是必现。 我使用的是动态键名:
// 是否显示P80引导页 var isShowHomeGuideP80: Boolean by serialLazy(true,"isShowHomeGuideP80_${userId}")