SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Quando devo fechar um cursor e db?


Devo fechar o cursor após cada uso ou posso mantê-lo aberto até que a visualização seja destruída?

Depende. Se o resultado do cursor não mudar enquanto isso (por exemplo, conexão remota modificando o banco de dados), tudo bem. Não se esqueça de usar o CursorLoader para que o Android gerencie seu cursor automaticamente (por exemplo, feche o cursor se o aplicativo travar).

E o mesmo para o banco de dados, ele pode ser aberto uma vez criada a atividade que contém essa visão e fechado quando a atividade for destruída?

Sim, você pode abrir em onResume() e feche em onPause() retornos de chamada ou quando você sabe que seu banco de dados não será mais consultado.

Eu recebo continuamente um erro 'close() nunca foi explicitamente chamado no banco de dados...' quando faço como descrito acima.

Isso é normal apenas se seu aplicativo travar. Não deve acontecer se você estiver fazendo como eu disse acima.