Question

J'essaie de construire un synchronisation qui devrait être exécuté toutes les quelques secondes pour vérifier rapidement les données spécifiques. J'utilise le code suivant pour exécuter SyncAdapter

ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);           
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);

et la synchronisation est trigrée correctée, mais j'ai remarqué que son appel n'est qu'une fois toutes les dix minutes. Basé sur l'entraînement Android http://developer.android.com/training /sync-adapters/Running-Sync-Adapter.html Dit:

Lorsqu'une connexion réseau est disponible, le système Android envoie un message toutes les quelques secondes pour garder le TCP / IP de l'appareil Connexion ouverte. Ce message va également au contenuResolver de chaque app. En appelant SetSynCautomatiquement (), vous pouvez exécuter l'adaptateur de synchronisation. Chaque fois que le contentResolver reçoit le message.

La connexion réseau que je suis disponible, mais c'est seulement une connexion 3G, pas WiFi - est-ce une raison sur la longue attente? Comment puis-je rendre mon adaptateur à courir toutes les 10 secondes? J'ai déjà essayé d'utiliser la synchronisation périodique

ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), 10);

Mais ça marche toujours toutes les 10 minutes.

Était-ce utile?

La solution

Vous êtes victime de l'android generAnCoDiceCode.Considérez ce scénario: vous ajoutez une synchronisation de 10 minutes pour votre application, mais vous avez installé mon application sur votre téléphone qui pose également le gestionnaire une synchronisation périodique de 10 minutes et mon application a fait l'exigence de planification une seconde avant que le vôtre :)Le fonctionnement de la synchronisation de mon application implique un transfert de grosses charges de données, d'où l'utilisation de toute la connexion Internet disponible (ou presque) de la connexion Internet disponible.Le Smart SyncManager verra que cela n'est pas sage de démarrer un autre processus de synchronisation tant que la précédente est effectuée, ce qui sera donc dû à la fin du processus, et seulement après la synchronisation de votre synchronisation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top