PreferenceManager getDefaultSharedPreferences는 Android Q에서 더 이상 사용되지 않습니다.
PreferenceManager getDefaultSharedPreferences
Android 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
'programing' 카테고리의 다른 글
십진수 열에 돈을 저장하는 것 - 어떤 정밀도와 규모입니까? (0) | 2023.08.11 |
---|---|
선형 레이아웃 하위 항목 사이에 공백을 만드는 방법은 무엇입니까? (0) | 2023.08.11 |
mysql 쿼리가 잘못된 인덱스를 사용합니다. (0) | 2023.08.11 |
SUM()을 사용한 기본 산술 연산 - 예기치 않은 값 (0) | 2023.08.11 |
표의 맨 위와 맨 아래에 있는 수평 스크롤 막대 (0) | 2023.08.11 |