1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

GPS Positionen anzeigen und speichern

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Hensch, 07.04.2012.

  1. Hensch, 07.04.2012 #1
    Hensch

    Hensch Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    06.04.2012
    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
     
  2. BFK, 08.04.2012 #2
    BFK

    BFK Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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.
     
  3. Hensch, 10.04.2012 #3
    Hensch

    Hensch Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    06.04.2012
    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?
     
  4. BFK, 12.04.2012 #4
    BFK

    BFK Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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..!
     

Diese Seite empfehlen