Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从数据存储首选项返回int值_Android_Kotlin_Datastore - Fatal编程技术网

Android 从数据存储首选项返回int值

Android 从数据存储首选项返回int值,android,kotlin,datastore,Android,Kotlin,Datastore,我有一个应用程序,我正在使用数据存储首选项保存int值,当我获得值时,我执行代码并希望返回该int值,以便我可以在代码中的不同位置使用它,但无法找到它,如果有人能提供帮助,请提前感谢 我试图让一个全局成员分配该值,然后返回,但由于该值是异步返回的,因此会使应用程序崩溃 这是我的密码 如果要直接获取值,应使用runBlocking。 像这样的事情应该可以做到: val textSize = runBlocking { dataStore.data.first() }[Common.TEXT_S

我有一个应用程序,我正在使用数据存储首选项保存
int
值,当我获得值时,我执行代码并希望返回该
int
值,以便我可以在代码中的不同位置使用它,但无法找到它,如果有人能提供帮助,请提前感谢

我试图让一个全局成员分配该值,然后返回,但由于该值是异步返回的,因此会使应用程序崩溃

  • 这是我的密码

如果要直接获取值,应使用
runBlocking
。 像这样的事情应该可以做到:

val textSize = runBlocking { dataStore.data.first() }[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()
}

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

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

lifeCycleScope.launch{
    val textSize = setTextSize()
}

非常有帮助,非常感谢非常有帮助,非常感谢