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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top