SQLite
 sql >> Base de données >  >> RDS >> SQLite

Quand dois-je fermer un curseur et une base de données ?

Dois-je fermer le curseur après chaque utilisation ou puis-je le garder ouvert jusqu'à ce que la vue soit détruite ?

Dépend. Si le résultat du curseur ne va pas changer entre-temps (par exemple, une connexion à distance modifiant la base de données), alors tout va bien. N'oubliez pas d'utiliser CursorLoader pour qu'Android gère automatiquement votre curseur (par exemple, fermez le curseur si votre application plante).

Et de même pour la base de données, peut-elle être ouverte une fois l'activité qui contient cette vue créée et fermée lorsque l'activité est détruite ?

Oui, vous pouvez ouvrir dans onResume() et fermer dans onPause() rappels ou lorsque vous savez que votre base de données ne sera plus interrogée.

Je reçois en permanence une erreur "close() n'a jamais été explicitement appelée sur la base de données..." lorsque je fais comme décrit ci-dessus.

Ceci n'est normal que si votre application plante. Cela ne devrait pas arriver si vous le faites comme je l'ai dit ci-dessus.