2013-01-13 5 views
8

Quelqu'un peut-il expliquer ce que exactement l'API Android Backup est utilisé?Android Backup API

J'ai lu Using the Backup API et Data Backup à partir du Developer Docs, mais je ne comprends toujours pas.

Quand les données sauvegardées & sont-elles restaurées?

Plus précisément dans ces situations:

  1. Un utilisateur installe mon application sur le périphérique 1, les données sont sauvegardées, et l'utilisateur installe alors mon application sur le périphérique 2. données utilisateur de l'appareil 1 est automatiquement mis en Appareil 2? Si oui, cela se produit-il lorsque l'application est installée ou lorsqu'elle est lancée?

  2. Mon application est installée sur 2 périphériques. Lorsqu'une modification est effectuée sur le périphérique 1, est-il automatiquement effectué sur le périphérique 2? Sinon, est-il au moins possible d'effectuer la modification sur le périphérique 2?

Dans un document, il est dit

Le service de sauvegarde n'a pas été conçu pour la synchronisation des données d'application avec d'autres clients ou la sauvegarde des données que vous souhaitez accéder au cours du cycle de vie de l'application normale. Vous ne pouvez pas lire ou écrire des données de sauvegarde sur la demande et vous ne pouvez pas y accéder autrement que via les API fournies par le gestionnaire de sauvegarde.

Mais dans un autre,

le cadre Android vous aide à construire riches applications compatibles cloud qui synchronisation de leurs données à un service Web à distance, en vous assurant tous vos appareils toujours rester synchronisés

Cela me semble être une contradiction. Plus spécifiquement, je souhaite synchroniser en permanence un seul fichier de base de données (moins de 20 Ko) sur plusieurs appareils. Est-ce possible avec l'API de sauvegarde?

+0

Hey Matt, y a-t-il une autre mise à jour sur la mise en œuvre? Avez-vous trouvé un autre moyen? J'essaie de mettre en œuvre une telle fonctionnalité, aussi. Et je suis coincé. https://plus.google.com/113101937919336078298/posts/jgwaj52GWcc –

Répondre

3

Modifier: Donc, pour répondre à votre question - non, ce n'est pas un moyen fiable de synchroniser vos données. Lorsqu'un utilisateur achète un nouvel appareil ou réinitialise son appareil existant, il peut s'attendre à ce que lorsque Google Play restaure votre application sur son appareil lors de la configuration initiale, les données précédentes associées à l'application sont également restaurées. Par défaut, cela ne se produit pas et toutes les réalisations ou les paramètres de l'utilisateur dans votre application sont perdus.

Comme je le vois votre application stocke des données dans le nuage. Vous poussez les fichiers sur les serveurs de sauvegarde et avec la clé API (qui est unique à chaque compte google utilisateurs) vous permet de télécharger la sauvegarde vers d'autres appareils, mais ne peut être accessible que pendant l'installation de l'application ou en faisant une demande manuelle.La documentation indique:

Le service de sauvegarde n'est pas conçu pour synchroniser les données d'application avec d'autres clients ou enregistrer les données auxquelles vous souhaitez accéder de manière aléatoire pendant le cycle de vie de l'application. Si je comprends bien (sans l'avoir implémenté moi-même), vous ne pouvez pas utiliser cette méthode comme une méthode fiable pour la synchronisation en temps réel des données en temps réel.

Le manifeste lancera probablement le traitement de vos données et déterminera si une sauvegarde doit être poussée.

À un certain moment dans le futur, le gestionnaire de sauvegarde appelle alors onBackup() de votre agent de sauvegarde méthode

La restauration d'une sauvegarde n'est pas manuel:

En général, vous shouldn » N'aurez jamais à demander manuellement une restauration, car il se produit automatiquement lorsque votre application est installée sur un périphérique. Toutefois, s'il est nécessaire de déclencher une restauration manuelle, appelez simplement la méthode requestRestore().

+0

Hey Daniel, pouvez-vous s'il vous plaît vérifier ce qui ne va pas dans mon code http://stackoverflow.com/questions/14299678/android-backup-api – Rahul

0

Soupir, la documentation ne devrait pas dire "sync" n'importe où. Je devrais soumettre quelques correctifs pour résoudre ce problème. :) Ce mécanisme n'est pas destiné à fournir l'échange de données entre deux appareils. L'objectif principal de l'infrastructure de sauvegarde d'Android est de donner une bonne expérience à vos utilisateurs lors de la configuration d'un nouvel appareil, par exemple lorsqu'ils achètent une tablette avec leur téléphone ou lorsqu'un appareil tombe en panne. et ils ont mis en place un remplacement. L'idée est que le nouvel appareil soit dans un état familier, avec toutes les mêmes applications et leurs données intactes, les mêmes images de fond d'écran, etc.

La synchronisation des données en temps réel entre les appareils est ce que les fonctions de Sync Manager sont pour.