Persistência de Dados de aplicativos no Android #200
rudsonalves
started this conversation in
Discussões gerais
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Ao desenvolver um aplicativo de cronômetro de treino utilizando Flutter e SQLite, me deparei com um problema peculiar: após desinstalar o aplicativo, limpar dados e cache, e reinstalar, o banco de dados da primeira instalação neste dispositivo físico persiste, independentemente do que faça para removê-lo.
Histórico
No início deste projeto, instalei-o em meu celular pessoal para ver como estava se comportando em um dispositivo real e também para poder apresentá-lo ao cliente.
Semanas depois, o projeto estava nos ajustes finais e fui reinstalá-lo novamente em meu celular. Como havia feito muitas alterações e a versão inicial não tinha um sistema robusto para migração do banco de dados, optei por remover o app e instalar novamente. Procedimento padrão:
Ao reiniciar, o aplicativo travou na tela de splash com o log:
De alguma forma, o Android recuperou o antigo banco de dados do aplicativo. Imagino que seja algum sistema de persistência dos dados do Android para melhorar a experiência do usuário.
Sem problema, logo no dispositivo com o
adb
, removo o banco de dados e executo novamente o app:Reinicio o app e tudo funciona como esperado:
Ok, uso o app, faço alguns testes, crio novos dados e, ao fim, removo o app novamente.
Neste momento, imagino que o sistema deve ter atualizado o banco de dados com as novas informações para o caso de restauração novamente. Só que, ao tentar reinstalar novamente:
Novamente, o app congela na tela de splash, com o mesmo erro do banco de dados resgatado das profundezas do Android.
O problema pode ser contornado desabilitando o backup do app com a adição das linhas abaixo no
AndroidManifest.xml
:ou mesmo renomeando o banco de dados de
app_dataBase.db
parastopwatch.db
, mantendo assim o comportamento padrão do sistema.Apenas para ilustrar, observem os arquivos após uma remoção completa e reinstalação do app:
O banco de dados original
app_dataBase.db
e seu journal simplesmente brotam do nada após a instalação.Entendo a persistência dos dados por parte do sistema Android, tentando restaurar configurações antigas das aplicações ao serem reinstaladas no sistema. O que não entendo é por que o Android elegeu esta versão do banco de dados em particular e a está restaurando sempre que instalo o app.
O problema em si está resolvido, só estou tentando entender se este é o comportamento padrão do Android ou algum problema específico deste meu celular.
Se alguém tiver algo a acrescentar, agradeço.
Beta Was this translation helpful? Give feedback.
All reactions