You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中SharedPreferences的remove/clear方法失效问题排查

问题分析及解决方案

你的removeToken函数存在两处关键问题,导致token删除后仍能读取到有效值:

  • 编辑会话使用错误,重复提交导致异常
    SharedPreferences的Editor实例在调用commit()后,当前编辑会话的修改已提交到磁盘,继续复用该实例执行后续修改并再次提交不符合规范,可能导致后续操作失效,甚至干扰之前的删除逻辑。

  • 冗余操作引发逻辑冲突
    你已经通过remove(USER_KEY)删除了目标token,后续又调用clear()清空整个SharedPreferences文件,两次提交的操作逻辑重复且可能冲突,反而影响删除操作的正确性。

修正后的removeToken函数

fun removeToken(context: ReactContext) {
    val storage = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
    storage?.edit()?.apply {
        remove(USER_KEY)
        // 若需清空整个存储文件,可替换为clear(),二选一即可
        commit()
    }
}

额外排查点

  • 确认读取token的逻辑是每次都从SharedPreferences重新获取,而非使用内存中缓存的旧值。
  • 检查PREF_NAME和USER_KEY常量值,确保设置、删除、读取token时使用的是同一组名称和键,避免因常量不一致操作了不同的存储项。

内容的提问来源于stack exchange,提问作者hong developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:09:32