54 votes

Comment synchroniser la base de données Android avec un serveur SQL en ligne?

Je développe une Application Android qui stocke les différents types de données dans le haut-SQL Lumière fournie par la Plate-forme Android.

L'intérieur de l'Application, j'ai placé un bouton "Sync" qui est censé pour Synchroniser les données entre le local SQL Lumière de la Base de données, avec en Ligne de SQL Server base de données sur mon serveur.

Quelle est la solution pour gérer cela? Cette fonction peut être trouvé dans Google Agenda, où vous pouvez voir le calendrier des événements sur votre mobile, et lorsque vous ajoutez un nouvel événement et de Synchroniser les données, vous pouvez afficher les données mises à jour en vous connectant à votre compte en ligne trop.

Remarque: je ne veux pas de centraliser ma base de données en ligne, parce que je veux donner aux utilisateurs mobiles la possibilité d'utiliser l'Application sans connexion internet.

Merci.

66voto

Nobu Games Points 2760

Vous devriez jeter un oeil à la SampleSyncAdapter projet dans le SDK Android démos. Il vous montre comment faire de la synchronisation "Android style", qui ne nécessite aucune interaction de l'utilisateur manuellement en appuyant sur un bouton de synchronisation de tous les temps.

En plus de cela, vous devez écrire le logiciel de serveur qui est en mesure de fournir votre SyncAdapter avec un "delta" de toutes les modifications apportées depuis le dernier commit. La plupart approche de base est de garder une "dernière synchronisation" timbre de temps dans votre application qui doit venir du serveur, sinon vous pourriez avoir des ennuis à cause de différences de temps entre le client et le serveur. Normaliser tous les timbres heure GMT ou n'importe quel fuseau horaire de votre choix, mais s'en tenir à cette décision. Si votre application doit afficher un timbre de temps en temps local, alors vous devez utiliser le Java Calendrier et le Fuseau horaire de classe pour la conversion de l'normalisé timbre de temps en temps local.

Votre application doit également drapeau changé dossiers locaux comme "sale", de sorte que votre SyncAdapter sait qu'il a besoin de télécharger ces changements ou de nouveaux enregistrements sur le serveur.

Suivant caractéristiques minimales sont nécessaires pour votre logiciel de serveur:

  • Mettre à jour les enregistrements existants(s) de la fonction
  • Ajouter un nouvel enregistrement(s) fonction
  • Obtenir des enregistrements mis à jour depuis la dernière synchronisation (app fournit l'heure)
  • Obtenir de nouveaux records depuis la dernière synchronisation (app fournit l'heure)

Vous souhaitez peut-être également lire par le biais de certaines API de Google (tels que Google Agenda) pour avoir une idée de la façon dont tout cela fonctionne et comment la conception de l'API du serveur d'interface pour la communication.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X