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

Android Kotlin:如何清除DataStore Preferences中的数据?

在Android中清除DataStore Preferences数据

DataStore Preferences 没有提供和SharedPreferences完全一致的直接clear()方法,但可以通过事务性编辑操作实现数据清除,完美适配你登出时删除认证码的场景。

1. 仅清除认证码(单个键值)

如果只需要删除保存的认证码而非所有数据,针对目标Key执行删除即可:

// 先定义DataStore实例
private val Context.dataStore by preferencesDataStore(name = "auth_store")

// 声明认证码对应的Key
val AUTH_TOKEN_KEY = stringPreferencesKey("auth_token")

// 清除单个键的挂起函数
suspend fun removeAuthToken() {
    dataStore.edit { prefs ->
        prefs.remove(AUTH_TOKEN_KEY)
    }
}

// 登出按钮点击时调用(需在协程中执行)
logoutBtn.setOnClickListener {
    lifecycleScope.launch {
        removeAuthToken()
        // 这里执行登出后的页面跳转等逻辑
    }
}

2. 清除DataStore中所有数据

如果需要清空该DataStore文件下的全部数据,可在编辑操作里调用clear():

suspend fun clearAllDataStoreData() {
    dataStore.edit { prefs ->
        prefs.clear()
    }
}

// 登出时触发
logoutBtn.setOnClickListener {
    lifecycleScope.launch {
        clearAllDataStoreData()
        // 后续登出逻辑
    }
}

重要提示

  • DataStore的所有编辑操作都是挂起函数,必须在协程(如lifecycleScope、viewModelScope)中执行,不能在主线程同步调用。
  • 和SharedPreferences相比,DataStore的操作是原子性的,要么全部成功要么全部失败,不会出现部分提交的异常情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:21:00