2011-03-26 3 views
4

Lors de l'accès à une base de données au sein d'un AsyncTask, la connexion à la base de données doit-elle être membre du parent Activity ou ouverte/fermée au sein de chaque AsyncTask? Si la connexion est un membre de l'activité, je crains que lors de la commutation entre les activités de mon application, il y ait la possibilité que la connexion à la base de données soit fermée avant que l'AsyncTask qui l'utilise soit terminée.AsyncTask accédant à la base de données - Où initialiser, fermer?

Répondre

2

Je n'ai jamais pensé à quelque chose, mais instinctivement, je ferais en sorte que l'AsyncTask soit aussi autonome que possible, c'est-à-dire qu'il gère ses propres opérations db en interne. La même chose s'applique à tout code enfilé.

EDIT: Voici un lien vers un bon article sur l'accès multiple à SQLite dans Android ... Android SQLite Locking

+0

La base de données SQLite contestait avoir plusieurs connexions ouvertes? Par exemple, si deux asyncTasks sont générés simultanément. –

+0

@Karl H: Les bases de données sont conçues pour avoir plusieurs connexions, bien que vous deviez faire attention si plus d'une opération d'écriture est en cours, ce qui peut impliquer le même 'sous-ensemble' de données. J'avoue que je n'ai pas beaucoup fait avec l'implémentation Android de SQLite mais j'utilise depuis quelques temps la version Windows de SQLite sans problème. – Squonk

+0

@Karl H: J'ai édité ma réponse pour inclure un lien vers une discussion sur l'accès multiple à SQLite sur Android - j'espère que c'est utile. – Squonk

Questions connexes