return 来自数据存储首选项的整数值

return int value from dataStore preferences

我有一个应用程序,我在其中使用数据存储首选项保存 int 值,当我获得该值时,我执行代码并想要 return 那个 int 值所以我可以在我的代码中的不同地方使用它,但无法弄清楚,如果有人可以提供帮助,请先谢谢你

我尝试让全局成员分配该值,然后 return 但由于该值是 return 异步编辑的,因此应用程序崩溃了。

private fun setTextSize() : Int {
        val dataStore = requireContext().createDataStore("textSize")
        lifecycleScope.launch { 
            dataStore.data.collect { 
              val textSize =  it[Common.TEXT_SIZE_PREFERENCE] 
            }
        }
    }

如果你想直接获取值你应该使用runBlocking。 这样的事情应该可以解决问题:

val textSize = runBlocking { dataStore.data.first() }[Common.TEXT_SIZE_PREFERENCE]

您可以将 suspend 修饰符添加到您的函数中,并使用 CoroutineScope 作为

访问它
suspend fun setTextSize() = dataStore.data.firstOrNull()[Common.TEXT_SIZE_PREFERENCE] ?: -1

正在访问

lifeCycleScope.launch{
    val textSize = setTextSize()
}