Tak*_*aki 3 android datastore kotlin
我有一个应用程序,我int
使用数据存储首选项保存值,当我获取值时,我执行代码并希望返回该int
值,以便我可以在代码中的不同位置使用它,但无法弄清楚,如果任何人都可以帮忙,提前谢谢你
我尝试创建一个全局成员来分配该值然后返回,但由于该值是异步返回的,因此它使应用程序崩溃。
private fun setTextSize() : Int {
val dataStore = requireContext().createDataStore("textSize")
lifecycleScope.launch {
dataStore.data.collect {
val textSize = it[Common.TEXT_SIZE_PREFERENCE]
}
}
}
Run Code Online (Sandbox Code Playgroud)
har*_*ore 10
如果你想直接获取值,你应该使用runBlocking
. 像这样的事情应该可以解决问题:
val textSize = runBlocking { dataStore.data.first() }[Common.TEXT_SIZE_PREFERENCE]
Run Code Online (Sandbox Code Playgroud)
您可以suspend
向函数添加修饰符并使用CoroutineScope
as访问它
suspend fun setTextSize() = dataStore.data.firstOrNull()[Common.TEXT_SIZE_PREFERENCE] ?: -1
Run Code Online (Sandbox Code Playgroud)
访问时
lifeCycleScope.launch{
val textSize = setTextSize()
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2994 次 |
最近记录: |