안녕하세요~ 챠니입니다! :)
이번에는 앱 삭제후에도 Shared preference 데이터가 남아있는 현상과 해결하는 방법에 대해서 알아보겠습니다.
Shared preference 는 왜 남아있는 것일까?
결론을 먼저 이야기하자면
원인은 자동백업 "BackupManager" 때문입니다.
Android API 23(or Android "6.0" or Android "Marshmellow")이후 BackupManager는 공유 환경설정을 포함한 앱의 모든 데이터를 클라우드에 저장한다고 합니다.
그렇기 때문에 Android "6.0"이후 부터는 AndroidManifest.xml 파일에 application 요소의 allowBackup 속성을 명시하지 않으면 자동으로 기본값인 true으로 설정이 되어서 앱의 데이터가 구글 클라우드에 자동으로 백업이 된다고 합니다.
결국 앱 삭제후 재설치 시 자동으로 백업이 되어 Shared preference에 저장된 자료를 불러오게 됩니다.
[해결방법]
AndroidManifest.xml 파일에 Backup에 대한 설정을 false로 변경합니다.
<application
...
android:allowBackup="false"
android:fullBackupContent="false"
...
</application>
*프로젝트에 다른 플로그인이 있는 경우 android:allowBackup 속성이 출동할 수 있으므로
-> tools:replace 속성을 추가로 설정
<application
...
android:allowBackup="false"
android:fullBackupContent="false"
tools:replace="android:allowBackup"
...
</application>
참고자료
https://developer.android.com/guide/topics/data/autobackup?hl=ko
질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!
응원의 댓글은 저에게 큰 힘이 된답니다! :)
즐거운 하루되세요!
깃허브 보러 놀러오세요 👇 (맞팔환영)
https://github.com/younminchan
'🖥 Programming > 📱 Android (Kotlin)' 카테고리의 다른 글
[Android][kotlin] WebView 동영상 자동재생 해결방법 (0) | 2023.01.21 |
---|---|
[Android][kotlin] Android Share 공유하기 기능 구현방법 (0) | 2023.01.20 |
[Android][kotlin] WebView에서 Daum 지도 두손가락 확대/축소 안되는 현상관련 (0) | 2023.01.19 |
[Android][Kotlin] android.view.WindowLeaked 에러 대응 (2) | 2023.01.07 |
[Android][kotlin] Retrofit End of input at line 1 column 1 path $ 해결방법 (0) | 2022.08.25 |
[Android] EditText 속성정리 (0) | 2022.08.25 |
[Android] 'tools:replace="android:label"', 'tools:replace="android:theme"' 해결방법 (0) | 2022.08.23 |
[Android] android.useAndroidX=true 문제 해결방법 (0) | 2022.08.22 |