Cela semble bon et assez avancé pour moi. Juste aller. Vous utilisez un db sqlite local comme "cache". Pour rester simple, n'implémentez aucune logique à ce sujet dans le code normal de votre application. Utilisez simplement la base de données locale. Ensuite, séparément, vous codez un synchroniseur. Celui-là vérifie la connexion en ligne et synchronise la base de données sqlite locale avec une base de données distante, peut-être mysql.
Cela devrait être parfaitement adapté à toutes les applications qui ne nécessitent pas l'échange immédiat des données avec d'autres processus tout le temps.
Il y a cependant un problème: les faibles performances de sqlite sur des ensembles de données plus volumineux. C'est un problème avec toutes les solutions de bases de données de fichiers uniques. Cette approche n'est donc probablement valable que pour de petits ensembles de données, ou si vous pouvez réduire l'utilisation de la base de données locale à seulement une partie des données totales, peut-être seulement les données critiques. Une autre solution peut consister à utiliser des jointures sur deux bases de données distinctes, l'une locale et l'autre distante. Mais de telles choses augmentent vraiment la complexité du code, alors pensez trois fois si cela est vraiment nécessaire.
Merci d'avoir répondu. Je ne peux pas utiliser le sqlite pour la mise en cache toujours, car mon application a besoin de mises à jour immédiates sur la base de données en ligne. Sur d'autres fonctions, il n'y aurait pas de problème s'il n'y a pas de connexion, mais dans une fonction particulière j'ai besoin de la fiabilité, car l'utilisateur pourrait probablement perdre ses données. Donc la solution que je pensais est la vôtre, créer une base de données sqlite (très petites données à gérer) où je mets mes données et s'il y a une connexion, j'y enregistre mes données et là où est en ligne, stockez sur mysql db. – xcsob
Ce serait une approche de cache classique. – arkascha
Une autre question, je crée mon sqlite db sur la première activité (pour stocker localement l'information de l'utilisateur). Je crée des tables dans la méthode create du gestionnaire de base de données, de sorte que les tables sont créées dans la première activité. Maintenant, comment puis-je obtenir la même instance de DB dans une autre activité? – xcsob