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
-
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