2016-10-10 2 views
0

Ich versuche, eine Android-App zu erstellen, die 3 Aktivitäten hat. Der Hauptbildschirm enthält eine Zusammenfassung der Informationen (momentan statischer Text) und einer der Navigationslinks wird zu einer Kartenaktivität geleitet.Android Speichern von Polygon und LongLat Werte zwischen Aktivitäten

Wenn ich zurück zum Hauptmenü navigiere und sie zurück zur Karte, löscht es das Polygon von der Karte und verliert auch die Route, die der Benutzer zuvor verfolgt hatte. Dies liegt daran, dass beim erneuten Navigieren der Kartenaktivität erneut die create-Methode aufgerufen wird, die diese Werte initialisiert.

Kann ich diese irgendwo anders initialisieren, oder wird erwartet, dass ich sie in SharedPreferences/Intents abspeichere, wenn der Benutzer von dieser Aktivität weg navigiert und sie erneut lädt, wenn die create-Methode erneut aufgerufen wird?

Zunächst möchte ich die folgenden Objekte beibehalten, es wäre nett, wenn ich eine benutzerdefinierte Klasse haben könnte, die alle Geo-Daten des Benutzers enthält und diese einfach lädt, wenn ich zurück zur Karte gehe.

private ArrayList<LatLng> routePoints; 
Polygon geoFencePolygon; 

Ich habe mehrere Artikel gelesen, aber ich bin neu in Android Entwicklung so unsicher auf dem Ansatz zur Speicherung von Daten wie diese geeignet ist, wie ich mir tue Dinge richtig sicherstellen will.

Schließlich muss ich die Standortverfolgung Laufen zu halten, auch wenn sie innerhalb der Anwendung zu navigieren überall, aber ich bin lernen die Grundlagen zuerst :)

Antwort

0

Sieht aus wie Sie auf einige geofancing oder GPS arbeiten Anwendung Tracking und Sie Ich möchte weiterhin Ihre Standortverfolgung oder einen Prozess laufen lassen, auch wenn er nicht auf der Kartenaktivität ist und auch Ihre Daten temporär speichern möchten

Ich denke, Sie sollten Android-Dienste verwenden, die mit Ihrer ersten Aktivität beginnen, um Ihren Standort zu verfolgen und speichern Sie es einige wo. Wenn Sie also Ihre Kartenaktivität erreichen, können Sie alle Ihre Standortdaten gleichzeitig haben.

ich werde sugest SQLITE benutzen, um Ihre Position zu speichern insted gemeinsamen Vorlieben Sie Tabelle löschen können, wenn Sie, dass Standortdaten brauchen nicht mehr

+0

diese in Echtzeit durchgeführt werden sollte? Ich hatte gehofft, dass ich die Details im Zustand behalten könnte, bis der Benutzer die Reise anhält, aber ist es beste Praxis, nur alle Details in SQLITE oder ähnlichem dann zu behalten? Wenn dem so ist, werde ich das jetzt untersuchen. Ich habe die Standortverfolgung funktioniert, aber es ist nicht auf die Hauptaktivität, sollte dies zu einem Service verschoben werden, um sicherzustellen, dass es den Speicherort protokolliert, wenn zwischen den Aktivitäten bewegt oder wenn die App minimiert wird? – Andrew

+0

Ja GPS Dinge sollten in Diensten getan werden und es sollte in sqlite gespeichert werden, wenn Sie Ihre GPS anmelden möchten. und wenn es App verfolgt als ich suggest, sollten Sie auch verfolgen, während es minimiert wird. bedeutet, dass Sie Ihren Dienst nicht stoppen sollten, bis Ihre App nicht mehr nachverfolgen muss. –

+0

Würden Sie sagen, dass dies ideal für einen Service oder IntentService ist? Es scheint, dass ich nicht möchte, dass der Haupt-Thread dadurch blockiert wird. Wie gebe ich Daten vom Dienst an andere Aktivitäten zurück, für die dies erforderlich ist? In SQL zu schreiben und dann zurück zu lesen, scheint ein bisschen klobig zu sein, also vermute ich, dass es einen besseren Ansatz für die App gibt, die Route zu aktualisieren, während sie anschließend in SQL gespeichert wird? – Andrew

Verwandte Themen