[Android、Jetpack] データストアに Preferebces.Key が含まれていることを確認する方法

データストアに Preferebces.Key が含まれているかどうかを判断する方法

1. データストアに Preferebces.Key が含まれていることを確認する方法

コードを直接貼り付けます

    inline fun <reified T> contains(key: String): Boolean =
        runBlocking { return@runBlocking dataStore.data.map { it.contains(getPreferencesKey<T>(key)) }.first() }
  • 基本設定キーの型を取得するコードは次のとおりです。
    inline fun <reified T> getPreferencesKey(key: String): Preferences.Key<out Any> =
        when (T::class) {
            String::class -> stringPreferencesKey(key)//putString(key, value)
            Boolean::class -> booleanPreferencesKey(key)
            Int::class -> intPreferencesKey(key)
            Long::class -> longPreferencesKey(key)
            Float::class -> floatPreferencesKey(key)
            Double::class -> doublePreferencesKey(key)
            else -> throw IllegalArgumentException("This type cannot be saved to the Data Store")
        }

Guess you like

Origin blog.csdn.net/weixin_42473228/article/details/131045691