【发布时间】:2020-10-21 13:22:56
【问题描述】:
我希望使用 android 存储一些数据,并尝试使用数据存储(jetpack android)。
我知道了:
class StoreToken(context:Context){
private val dataStore = context.createDataStore(name = "token")
companion object{
val TOKEN_ACCESS_CIPHER_KEY = preferencesKey<String>("TOKEN_ACCESS_CIPHER")
}
suspend fun storeToken(accessCipher: String){
dataStore.edit {
it[TOKEN_ACCESS_CIPHER_KEY] = accessCipher
}
}
val accessCipher = dataStore.data.map{ it[TOKEN_ACCESS_CIPHER_KEY] ?: "none" }
}
我将我的 access_cipher_key 存储在那里: 在使用 OkHttp 进行 api 调用的 kotlin 类中
GlobalScope.launch {
StoreToken(context).storeToken("key")
}
所以现在当我尝试阅读它时,我会这样做:(我点它可能是错误的):
class HomeLoggedActivity : AppCompatActivity() {
lateinit var storeToken: StoreToken
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home_logged)
storeToken = StoreToken(this)
storeToken.accessCipher
}
}
我已经尝试了很多东西来阅读它(迭代,字符串,...) 我认为这可能是一个异步错误,或者我的思维过程对异步不好
【问题讨论】:
标签: android kotlin asynchronous coroutine