1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 1.创建 Serializer object UserSerializer : Serializer<User> { override val defaultValue: User = User.getDefaultInstance()
override suspend fun readFrom(input: InputStream): User { return User.parseFrom(input) }
override suspend fun writeTo(t: User, output: OutputStream) { t.writeTo(output) } }
2.创建 DataStore val Context.userDataStore: DataStore<User> by dataStore( fileName = "user_prefs.pb", serializer = UserSerializer )
3.存储数据 suspend fun saveUser(user: User) { context.userDataStore.updateData { currentUser -> currentUser.toBuilder() .setName(user.name) .setAge(user.age) .build() } }
4.读取数据 val userFlow: Flow<User> = context.userDataStore.data lifecycleScope.launch { userFlow.collect { user -> Log.d("DataStore", "用户:${user.name}, 年龄:${user.age}") } }
|