JetPackJetpack

JetPack学习之路二:DataStore初体验

2020-10-27  本文已影响0人  Dale_Dawson

Jetpack DataStore是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化的对象。 DataStore使用Kotlin协程和Flow来存储数据,如果目前使用的是SharedPreferences,可以考虑迁移到DataStore。

官方文档直达

DataStore提供了两种不同的实现:Preferences DataStore和Proto DataStore。

本篇文章简单介绍第一种Preferences DataStore的使用方法。

一、在app下的build.gradle注入依赖

    // Preferences DataStore
    implementation "androidx.datastore:datastore-preferences:1.0.0-alpha02"
    // Proto DataStore
    implementation "androidx.datastore:datastore-core:1.0.0-alpha02"

二、创建Preferences DataStore

 private val dataStore: DataStore<Preferences> = this.createDataStore(
        name = "Data"
    )

三、从Preferences DataStore读取数据

val dataFlow: Flow<String> = dataStore.data
                    .map { preferences ->
                        // No type safety.
                        preferences[dataStoreKey] ?: ""
                    }
                dataFlow.collect { value -> println(value) }

四、存入数据到Preferences DataStore

suspend fun saveData() {
        dataStore.edit { settings ->
//            val currentCounterValue = settings[dataStoreKey] ?: ""
            settings[dataStoreKey] = "我是存入的数据"+System.currentTimeMillis()
        }
    }

此文只介绍了Preferences DataStore的简单使用,还在研究中,后期继续完善。

上一篇下一篇

猜你喜欢

热点阅读