Je fais un client de messagerie instantanée pour Android et je travaille avec des bases de données pour stocker les contacts et autres informations ... Dans mon application, j'ai une activité et un service. J'ai besoin d'ouvrir trois bases de données en même temps sur le service et sur l'activité.Android bases de données multiples ouvertes
J'utilise trois bases de données parce que je veux que les bases de données soient gérées plus facilement sans avoir de problèmes avec la synchronisation de l'écriture dedans. (pour autant que je sache, j'ai besoin d'écrire dans la base de données de manière synchrone, car il pourrait écraser).
Pour gérer les bases de données du service et de l'activité dans le même temps, je pensais qu'un singleton ou une classe statique DatabaseHelper pourrait me aider ...
J'ai commencé à faire un test en en faisant deux objets global databasehelper dans l'activité, chacun ouvre une base de données différente, après avoir exécuté le projet j'ai remarqué que la dernière base de données ouverte reste ouverte dans les deux objets: ((, pourquoi cela se passe-t-il? moi comment puis-je faire ce travail? Merci!
L .E .: après plus de tests, j'ai créé un objet statique de databasehelper, ouvert un service à partir duquel je prends l'objet base de données de l'activité et en même temps j'en ai fait deux pour les instructions, une en activité et une en service à 3000 et ajoute des valeurs dans la même base de données, puis il lit la base de données. Après cette exécution j'ai remarqué que la base de données est toujours dans les pieds et fonctionne sans erreurs. La chose étrange est que le service pour est en cours d'exécution seulement après l'activité pour terminer le travail. Pourquoi donc? Merci!
Peut-être, vous avez travaillé avec la base de données du thread principal de l'activité et au service. –