Android DataStore 是一种用于持久化存储数据的 API,它提供了一种简单、高效的方式来存储和检索键值对数据。DataStore 支持多种数据类型,包括字符串、整数、浮点数、布尔值和二进制数据。它还支持事务性操作,确保数据的一致性和完整性。
Android DataStore 主要有两种类型:
DataStore 适用于以下场景:
假设我们要从 Proto DataStore 中检索数据并保存到全局变量,以下是一个示例代码:
import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.dataStore
import com.example.app.data.UserPreferences
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
// 定义全局变量
val globalUserPreferences: UserPreferences? = null
// 初始化 DataStore
val Context.userPreferencesDataStore: DataStore<UserPreferences> by dataStore(
fileName = "user_preferences.proto"
)
// 从 DataStore 中检索数据并保存到全局变量
fun retrieveUserPreferences(context: Context) {
runBlocking {
try {
val userPreferencesFlow: Flow<UserPreferences> = context.userPreferencesDataStore.data
val userPreferences = userPreferencesFlow.first()
globalUserPreferences = userPreferences
} catch (e: Exception) {
e.printStackTrace()
}
}
}
原因:
解决方法:
put
方法添加数据。原因:
解决方法:
通过以上方法,可以有效地从 Android DataStore 中检索数据并保存到全局变量,同时解决常见的数据存储和检索问题。
领取专属 10元无门槛券
手把手带您无忧上云