Frage

Meine App trifft mehrere Anrufe an getFromLocationName von dem android.location.Geocoder; Klasse, dies wird derzeit in meiner Aktivität behandelt, wodurch auch einige Daten auf den Ergebnissen dieses Aufrufs angezeigt werden.

Dies kann ziemlich langsam sein, zum Beispiel, bevor die Aktivität sie zuerst laden kann, um die verschiedenen Anrufe zu erfüllen, und dies hängt von einer Netzwerkverbindung ab.

Sobald ich die Ergebnisse habe, muss ich das nicht wirklich aktualisieren (ich meine, wie oft ändern sich Standorte und Geo -Koordinaten?)

Meine Frage : Wie kann ich es am besten vermeiden, diese Daten jedes Mal abfragen zu müssen, wenn meine App ausgeführt wird? Soll ich etwas mit einem Dienst tun, der sie alle beim Start lädt? (könnte ziemlich langsam sein, wenn es 50+ Mal abfragen muss). Oder sollte ich den Anruf tätigen, die Ergebnisse in SQL speichern und dann das nächste Mal nur nachfragen, wenn ich die Ergebnisse derzeit nicht halte?

War es hilfreich?

Lösung

Wenn Sie es schnell zwischenspeichern möchten, empfehlen ich, die neuesten Ergebnisse in einer SQLite -Datenbank zu speichern. Sie könnten wahrscheinlich sogar durchkommen, wenn Sie die verwenden Preferencemanager Für den schnellen Speicher, wenn Sie die Datenbank für nichts anderes benötigen. Speichern Sie einfach die neuesten Koordinaten und die DateTime und prüfen Sie dann, ob die DateTime nach x Minuten oder x Stunden abgelaufen ist (wenn Sie das tun möchten).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top