Question

J'ai une base de données SQLite déclarée et stockée au niveau de l'application. Je gère les modifications de la configuration telles que la rotation du périphérique, la fermeture de la base de données que je l'ai définie à l'intérieur de l'Ondestroy de la MainAlactivité, mais à l'intérieur d'une si (si contestable ()).

Le problème que j'ai est que, si juste après la fermeture de l'application, j'essaie de le lancer à nouveau, il se bloque de me dire qu'il a essayé d'ouvrir une base de données déjà fermée. La prochaine fois, il se lancera correctement. Je suppose que c'est parce que Android n'a jamais vraiment fermé la demande car il n'y avait pas besoin, et c'est toujours en arrière-plan.

Je n'ai pas pu trouver un moyen de détecter Onfininish / Ondestroy .... Au niveau de l'application, fermer la base de données là-bas. La seule solution de contournement que je puisse faire est de ne pas fermer la base de données. Mais cela peut me donner des problèmes peut-être lorsque vous essayez de l'ouvrir à nouveau au cas où Android a vraiment fermé ma demande, non?

Y a-t-il un moyen de forcer la fermeture de l'application? (Je pense qu'il n'y a pas). Existe-t-il un moyen de détecter la fermeture de l'application pour fermer la base de données là-bas? Aurai-je des problèmes d'essayer d'ouvrir une base de données non fermée si l'application a été fermée par Android? Ou Android ferme la base de données liée à une application qu'il va fermer?

Était-ce utile?

La solution

La seule solution de contournement que je peux faire est de ne pas fermer la base de données

correct, et c'est la bonne réponse.

Mais cela peut me donner des problèmes peut-être lorsque vous essayez de l'ouvrir à nouveau au cas où Android fermait vraiment ma demande, non?

NO.

Y a-t-il un moyen de détecter la fermeture de l'application pour fermer la base de données là-bas?

NO.

aurai-je des problèmes d'essayer d'ouvrir une base de données non fermée si l'application a été fermée par Android?

NO.

ou Android ferme la base de données liée à une application qu'elle va fermer?

NO.

La fermeture d'une base de données ne fait pas vraiment tout ça.SQLite est transactionnel;Toutes vos opérations d'écriture de base de données sont écrites sur disque lorsque vous exécutez ces transactions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top