GPS Positionen anzeigen und speichern

H

Hensch

Neues Mitglied
0
Ich möchte die GPS-Positionen ständig anzeigen und abspeichern (GPS Logger). Dies soll natürliche durch andere Apps oder auch die back-Taste nicht unterbrochen werden und im Hintergrund weiterlaufen (die Anzeige verschwindet dann natürlich). Die UI der Apps soll sich jederzeit wieder durch ein Anklicken der Benachrichtigung über den aktiven Service öffnen lassen. Dies sollte mit einem Service (im Hintergrund) möglich sein. Kann mir jemand das grundsätzliche Vorgehen genauer erläutern? Hauptaktivität -> Service -> Datenanzeige/Abspeichern -> Hintergrund (andere Apps oder back) -> Nachricht über Service -> Aktivierung der UI
 
Hi Hensch,
Deine Gedanken sind schon richtig..!
Du startest von deiner Hauptactivity einen Service, der einen LocationListener besitzt, wo du alle Infos vom GPS-Signal bekommst. Die kannst du per Broadcasts an deiner Hauptactivity schicken und da anzeigen lassen (wenn du auch willst speichern DB oder was auch immer, wobei das abspeichern besser in deinem Service stattfinden sollte).
Wenn der Nutzer dann deine App verlässt (läuft ja dein Service weiter), könntest du wie du bereits sagtest eine Benachrichtigung anzeigen lassen, auf die der Nutzer später draufklicken kann und somit zu deiner Hauptactivity zurückkehren kann.
 
Danke erst einmal. Es ist immer gut zu wissen, dass man nicht völlig falsch liegt. Mit den Nachrichten klappt das recht gut, zumal sich diese nach dem Anklicken (bei gesetztem Flag) selber löschen. Die Frage ist nur, wenn ich die Nachricht auslöse. Ein Abfangen der Tasten (HOME, BACK ...) ist sehr aufwändig. Also habe ich das onStop() Ereignis der Hauptactivity verwendet. Allerdings wird dieses z.B. auch der der automatischen Drehung ausgelöst. Da soll natürlich keine Nachricht verschickt werden, weil die Hauptactivity (für den Anwender) ja sichtbar bleibt. Hilft hier onConfigurationChanged() weiter oder gibt es eine bessere Idee?
 
Hensch schrieb:
Danke erst einmal. Es ist immer gut zu wissen, dass man nicht völlig falsch liegt. Mit den Nachrichten klappt das recht gut, zumal sich diese nach dem Anklicken (bei gesetztem Flag) selber löschen. Die Frage ist nur, wenn ich die Nachricht auslöse. Ein Abfangen der Tasten (HOME, BACK ...) ist sehr aufwändig. Also habe ich das onStop() Ereignis der Hauptactivity verwendet. Allerdings wird dieses z.B. auch der der automatischen Drehung ausgelöst. Da soll natürlich keine Nachricht verschickt werden, weil die Hauptactivity (für den Anwender) ja sichtbar bleibt. Hilft hier onConfigurationChanged() weiter oder gibt es eine bessere Idee?

Ja, das ist immer eine komische Sache mit der Orientation.
Also soweit ich weiss wird onConfigChanged nur dann aufgerufen, wenn eine Drehung passiert, bin mir da allerdings nicht sicher..!

Ich hätte es erstmal so belassen wie du es hast bei onStop(); (oder onPause) . Du könntest aber vor der Drehung eine "onRotation"-Variable true setzten (bei onConfigChanged), und bei onStop() abfragen ob jetzt gedreht wird oder nicht und somit eine Nachrich verschicken..!
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.051
jogimuc
J
A
Antworten
10
Aufrufe
1.919
swa00
swa00
D
  • Data2006
3 4 5
Antworten
84
Aufrufe
3.692
jogimuc
J
Zurück
Oben Unten