앱을 삭제했을 때 shared preference 데이터 삭제하는 방법
앱을 삭제했을 때 shared preference 데이터 삭제하는 방법
앱을 삭제 후 재설치 한 후에도 공유 환경 설정(shared preference)에서 일부 데이터가 복원되는 증상이 요즘 나온 최신 폰에서 발생하고 있다.
갤럭시 S8 폰이 그렇다. 동일한 폰 갤럭시S8폰 2개를 가지고 테스트 한 결과, 서로 다른 상황히 벌어졌다.
앱을 삭제 후 하나의 S8폰에서는 공유환경설정 데이터가 삭제되었으나, 다른 하나의 갤럭시S8폰에는 그대로 남아 있어 인증절차를 회피하는 상황이 발생되었다.
원인 : “BackupManager”.
Android API 23 (또는 Android “6.0”또는 Android “Marshmellow”) 이후 BackupManager는 공유 환경 설정을 포함한 앱의 모든 데이터를 클라우드에 저장합니다. 따라서 응용 프로그램을 다시 설치하면 공유 기본 설정 데이터가 복원됩니다.
AndroidManifest.xml 파일에 android:allowBackup 속성을 명시하지 않으면 자동으로 true로 설정됩니다.
여기서 주목해야 할 요점은 백업 프로세스가 블랙 박스와 유사하다는 것입니다.
백업 시작 시점, 시작 시점, 백업의 다음주기가 언제인지 알 수 없습니다.
따라서 백업 프로세스를 사용하지 않도록 설정하거나 백업 직전에 공유 환경 설정 데이터를 설정하는 것은 현재로서는 불가능합니다.
주목해야 할 또 다른 요점은 안드로이드에서 애플리케이션을 생성 할 때 매니페스트 파일(manifest file)에서 키 “allowBackup”이 기본적으로 true로 설정된다는 것입니다.
해결책 :
해결 방법 1 : 설정 -> 백업 및 재설정 -> 자동 복원을 선택하고 자동복원을 해제 합니다.
그러나 이 방법은 장치에 설치된 모든 응용 프로그램의 자동 백업 기능을 해제하므로 권장하지 않습니다.
해결 방법 2 : 매니페스트 파일(AndroidManifest.xml)로 이동하십시오. 응용 프로그램 태그에서 “allowBackup”속성을 찾아서 false로 설정하세요. “fullBackupContent”및 “fullBackupOnly” 역시 false로 설정하십시오.
<application android:name=".analytics.ApplicationAnalytics" android:allowBackup="false" android:fullBackupOnly="false" android:fullBackupContent="false" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
해결방법 3 (옵션) : 해결방법 2로 시도했으나 오류가 발생한다면,
프로젝트에 다른 플러그인이 있는 경우 allowBackup 속성이 충돌할 수 있다. tools:replace 속성을 추가하고, 값은 “android:allowBackup”으로 설정하세요.
<application android:name=".analytics.ApplicationAnalytics" android:allowBackup="false" android:fullBackupOnly="false" android:fullBackupContent="false" tools:replace="android:label,android:icon,android:name,android:allowBackup,android:fullBackupOnly,android:fullBackupContent" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
android:fullBackupOnly=”false” 는 안드로이드 API 21 이후 폰 부터 설정 사용가능하다.
이에 관한 더 많은 도움을 받으려면 아래 공식 사이트를 확인하세요.
https://developer.android.com/guide/topics/data/autobackup.html