Question

Mon application passe plusieurs appels à getFromLocationName du android.location.Geocoder; Classe, ceci est actuellement géré dans mon activité qui affiche également certains dépèdeurs de données sur les résultats de cet appel.

Cela peut être assez lent, par exemple avant que l'activité puisse le charger doit d'abord terminer les différents appels, ce qui dépend d'une connexion réseau.

Une fois que j'ai les résultats, je n'ai pas vraiment besoin de me rafraîchir (je veux dire à quelle fréquence les emplacements et les coordonnées géo changent-ils?)

Ma question : Comment puis-je éviter de devoir interroger pour ces données chaque fois que mon application s'exécute. Dois-je faire quelque chose avec un service qui les charge tous au démarrage? (pourrait être assez lent s'il doit interroger plus de 50 fois). Ou dois-je passer l'appel, les résultats du stockage en SQL, puis interroger la prochaine fois que si je ne tiens pas actuellement les résultats?

Était-ce utile?

La solution

Si vous souhaitez le mettre rapidement en cache, je recommanderais de stocker les résultats les plus récents dans une base de données SQLite. Vous pourriez probablement même vous en tirer avec l'utilisation du Préférence de préférence Pour un stockage rapide si vous n'avez pas besoin de la base de données pour autre chose. Conservez simplement les dernières coordonnées et le DateTime, puis vérifiez si le DateTime a expiré après x minutes ou x heures (si c'est ce que vous voulez faire).

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