Android fechando e abrindo o banco de dados SQLite no nível de aplicativo
-
21-12-2019 - |
Pergunta
Eu tenho um banco de dados SQLite declarado e armazenado no nível do aplicativo. Eu ligo as alterações de configuração como a rotação do dispositivo, para que o fechamento do banco de dados o coloquei dentro da ondestroy da mainazztivity, mas dentro de um IF (este.ISfinishing ()).
O problema que tenho é que, se logo após o fechamento do aplicativo, tento lançá-lo novamente, ele falha me dizendo que ele tentou abrir um banco de dados já fechado. Da próxima vez que lançará corretamente. Eu acho que isso é porque Android nunca realmente fechou a aplicação porque não havia necessidade, e ainda está em segundo plano.
Eu não consegui encontrar uma maneira de detectar onfinish / ondestroy ... no nível de aplicativo, para fechar o banco de dados lá. A única solução alternativa que posso fazer é não fechar o banco de dados. Mas isso pode me dar problemas, talvez ao tentar abri-lo novamente no caso do Android verdadeiramente fechado meu aplicativo, não?
Existe uma maneira de forçar a aplicação? (Eu acho que não há). Existe uma maneira de detectar o fechamento do aplicativo para fechar o banco de dados lá? Eu terei problemas tentando abrir um banco de dados não fechado se o aplicativo foi fechado pelo Android? Ou o Android fecha o banco de dados vinculado a um aplicativo que vai fechar?
Solução
.A única solução alternativa que posso fazer é não fechar o banco de dados
correto, e esta é a resposta certa.
.Mas isso pode me dar problemas, talvez ao tentar abri-lo novamente no caso do Android verdadeiramente fechado meu aplicativo, não?
não.
.Existe uma maneira de detectar o fechamento do aplicativo para fechar o banco de dados lá?
não.
.Eu terei problemas para tentar abrir um banco de dados não fechado se o aplicativo foi fechado pelo Android?
não.
.ou android fecha o banco de dados vinculado a um aplicativo que vai fechar?
não.
Fechar um banco de dados não faz muito tudo isso.Sqlite é transacional;Todas as suas operações de gravação de banco de dados são gravadas em disco quando você executa essas transações.