📱테스트 환경
Samsung Galaxy Android 13 • Android 10
😢 내가 겪은 문제
Android 13 에서 앱을 삭제했는데도 Room 에 저장되어있는 데이터들이 일부 자꾸 남아있었다. 나는 앱을 지웠는데 자꾸 남아있어서 너무 어이가 없고 화가 나는 상황속에서 열심히 구글에 검색해서 찾아봤더니 ...
원인은 자동백업 ( backupManager ) 때문이였다 ... 이때문에 진짜 .. 시간 너무 많이 썼는데 해결방법은 의외로 정말 간단했다 !!
allowBackup 과 fullBackupContent 를 false 해주면 끝난다.
이렇게 해주지 않으면 사용자도 모르게 구글 클라우드에 자동으로 백업된다고 한다.
AndroidManifest.kt
<application
...
android:allowBackup="false"
android:fullBackupContent="false"
...
</application>
나는 이것 이외에도 추가적으로 작업해준 내용이 있는데 , 이건 투머치 작업인것 같지만 , 혹시 몰라서 작업해놨다.
MyApp.kt
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
deleteDatabaseOnAppUninstall()
}
private fun deleteDatabaseOnAppUninstall() {
val packageName = packageName
val dataDir = "/data/data/$packageName/databases/"
val databaseName = "my-database"
val databaseFile = File(dataDir, databaseName)
val observer = object : FileObserver(databaseFile.absolutePath) {
override fun onEvent(event: Int, path: String?) {
if (event == FileObserver.DELETE_SELF) {
// 데이터베이스 파일이 삭제되었으므로 데이터베이스 내의 모든 데이터를 삭제
val context = applicationContext
val database = AppDatabase.getDatabase(context)
// Dao 전부 작성
val Dao = database.Dao()
Thread {
Dao.deleteAll()
}.start()
stopWatching()
}
}
}
observer.startWatching()
}
}
이렇게 해주고 나니 더이상 앱을 삭제 이후 재설치 해줘도 기존의 데이터가 남아있지 않았다 !!
다른 분들은 첫번째 Manifest 만 수정해도 됐다는 분들도 계셨는데 나는 혹시몰라 추가작업을 했지만 ?
결과적으론 안남았으니 만족스러운 결과라고 생각한다 ^^
'Android > Kotlin' 카테고리의 다른 글
[Kotlin] 앱 알림 보내기 (0) | 2023.08.09 |
---|---|
[Kotlin] Activity 이동 시 Animation 제거하는 방법 (0) | 2023.08.09 |
[Kotlin] Splash Screen 만들기 (0) | 2023.08.09 |
[Kotlin] Retrofit2 연결 (0) | 2023.08.08 |
[Kotlin] Android 12 이상 메일 보내는 방법 (0) | 2023.08.07 |