inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

DataStoreEx 파트 class MyDataStore(context: Context) { 수정 제안)

미해결

[중급편] 친절한 JETPACK 개론 <하> (Android Kotlin)

기존 : 지역 변수 DataStoreEx 파트 class MyDataStore { ... private val Context.dataStore : DataStore<Preferences> by preferencesDataStore("user_pref") ... } 제안 : 전역 변수로 변경 private val Context.dataStore : DataStore<Preferences> by preferencesDataStore("user_pref") DataStoreEx 파트 class MyDataStore { ... } 위 내용을 코딩중 Context.dataStore은 전역 변수 또는 싱글톤으로 제작 해야 안정적으로 보입니다 . 예를 들어서 Activity안에 위 클래스를 생성하는 코드를 작성한 후 동작 하면 일단은 동작 합니다. 하지만 다시 Activity에 진입하면 에러가 납니다. DataStore version 1.0.0입니다. 왜 그런지 찾아 보니 버전 1.0.0-alpha07 2021년 2월 24일 androidx.datastore:datastore-*:1.0.0-alpha07 이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋 을 확인하세요. API 변경사항 Context.createDataStore 확장 함수를 삭제하고 globalDataStore 속성 위임으로 대체했습니다. kotlin 파일의 최상위 수준에서 globalDataStore를 한 번 호출합니다. 예: val Context.myDataStore by dataStore(...) kotlin 파일의 최상위 수준에 배치하면 이 인스턴스가 하나만 생깁니다. ( I57215 , b/173726702 ) RxDataStore 함수는 이제 DataStore의 확장 함수 대신 RxDataStore 클래스에 있습니다. ( Idccdb , b/177691248 ) EncryptedSharedPreferences를 DataStore로 이전(또는 SharedPreferences를 직접 부팅)하려는 경우 이제 SharedPreferences를 삽입할 수 있는 새로운 SharedPreferencesMigration 생성자를 사용하면 됩니다. ( I8e04e , b/177278510 ) ================================ 버그 수정 동일한 파일에 활성 DataStore가 여러 개 있는 경우 이제 DataStore에서 예외가 발생합니다. DataStore를 싱글톤으로 관리하지 않았거나 한 파일의 DataStore 인스턴스 두 개가 동시에 활성화되지 않도록 조치하지 않은 경우 이제 DataStore를 읽거나 DataStore에 쓸 때 예외가 발생할 수도 있습니다. DataStore를 싱글톤으로 관리하면 해결할 수 있습니다. ( Ib43f4 , b/177691248 ) 호출자 범위 취소 시의 취소 동작을 수정합니다. ( I2c7b3 ) 라고 적혀 있네요 ... 그래서 전 Context.myDataStore를 전역 변수로 수정하고 테스트 했는데 정상적으로 동작 되는것을 확인 했습니다. 이상입니다.

  • android
  • kotlin
  • jetpack
  • datastore
just kim 댓글 3 좋아요 0 조회수 514

인기 태그

인프런 TOP Writers

주간 인기글