programing

PreferenceManager getDefaultSharedPreferences는 Android Q에서 더 이상 사용되지 않습니다.

powerit 2023. 8. 11. 22:39
반응형

PreferenceManager getDefaultSharedPreferences는 Android Q에서 더 이상 사용되지 않습니다.

PreferenceManager getDefaultSharedPreferencesAndroid 10에서는 더 이상 사용되지 않습니다.어떻게 교체해야 합니까?

의 Android 10 지원 라이브러리 버전을 사용할 수 있습니다.androidx.preference.PreferenceManager그리고 아닌android.preference.PreferenceManager.

build.gradle에 다음을 추가해야 합니다.

implementation 'androidx.preference:preference:1.2.0'

패키지는 다음을 제공합니다.androidx 기본 설정 관리자:

Java:implementation "androidx.preference:preference:1.1.1"

코틀린:implementation "androidx.preference:preference-ktx:1.1.1"


변화android.preference.PreferenceManager로.androidx.preference.PreferenceManager


또한 최신 버전인 PreferenceFragmentCompat도 참조하십시오.PreferenceFragment사용할 클래스입니다.

키-값 쌍을 저장하고 검색하는 경우 대체할 수 있습니다.

 prefs = PreferenceManager.getDefaultSharedPreferences(this); 

포함:

 prefs = getSharedPreferences(
            "my.app.packagename_preferences", Context.MODE_PRIVATE);

새 구현에 올바른 파일 이름을 사용해야 합니다. 그렇지 않으면 사용자가 getDefaultSharedPreferences(!)로 저장된 모든 파일에 액세스할 수 없게 됩니다.다음은 getDefaultSharedPreferences에서 사용하는 파일 이름을 가져옵니다.

getPackageName() + "_preferences"

Jetpack DataStore를 사용합니다. 이는 프로토콜 버퍼가 있는 키-값 쌍 또는 유형화된 개체를 저장할 수 있는 데이터 스토리지 솔루션입니다.DataStore는 Kotlin 코루틴과 Flow를 사용하여 데이터를 비동기식, 일관성 및 트랜잭션 방식으로 저장합니다.

현재 Shared Preferences를 사용하여 데이터를 저장하고 있다면 대신 DataStore로 마이그레이션하는 것을 고려해 보십시오.

세우다

dependencies {
        implementation "androidx.datastore:datastore:1.0.0"
}

또한 RxJava2 및 RxJava3도 지원합니다.

인용 출처PreferenceManager 설명서:

이 클래스는 API 수준 29에서 더 이상 사용되지 않습니다.
AndroidX 기본 설정 라이브러리를 사용하면 모든 장치에서 일관된 동작을 수행할 수 있습니다.AndroidX 기본 설정 라이브러리 사용에 대한 자세한 내용은 설정을 참조하십시오.

코틀린 도서관

implementation 'androidx.preference:preference-ktx:1.1.1'

코틀린 사용

Configuration.getInstance().load(this, androidx.preference.PreferenceManager.getDefaultSharedPreferences(this))

네, 더 이상 사용하지 않습니다.

AndroidX 기본 설정 라이브러리를 사용하면 모든 장치에서 일관된 동작을 수행할 수 있습니다.AndroidX 기본 설정 라이브러리 사용에 대한 자세한 내용은 설정을 참조하십시오.

다음을 수행합니다.

기본 설정 관리자

이 라이브러리는 앱 수준 Gradle에서 가져올 수 있습니다.

implementation "androidx.preference:preference-ktx:1.1.1"

그런 다음 "기본 설정 관리자"를 만드는 클래스에서 가져온 파일을 제거합니다. Alt+Enter and import rodroidx를 누르면 최신 버전의 기본 설정 관리자를 얻을 수 있습니다.

implementation "androidx.preference:preference-ktx:1.1.1"

클래스 파일 개인 공유 기본 설정;

class PrivateSharedPreferences(context: Context) {
private val file = "com.example.com_shared"
private val key = "private_key"
private var sharedPreferences = context.getSharedPreferences(file, Context.MODE_PRIVATE)
private val editor = sharedPreferences.edit()

fun save(ok: Boolean) {
    editor.putBoolean(key, ok)
    editor.apply()
}

fun read() : Boolean {
    return sharedPreferences.getBoolean(key, false)
}

}

단편 또는 어댑터에서 읽음;

PrivateSharedPreferences(context).read()

절약하다

PrivateSharedPreferences(context).save(true)

언급URL : https://stackoverflow.com/questions/56833657/preferencemanager-getdefaultsharedpreferences-deprecated-in-android-q

반응형