Dynamische Location-Abfragen im Hintergrund

  • Hallo,
    ich plane gerade eine Erweiterung einer bestehenden App, und weiß nicht genau, welchen Weg ich dabei einschlagen soll
    (um am Ende festzustellen, dass er falsch war).


    Ich habe (vereinfacht) folgendes vor:
    Eine App hat u.a. einen Start und einen Stop Button.
    Klickt man Start, wird die aktuelle Position ermittelt und daraus eine Zeit abgeschätzt, die man mind. benötigt, um an einem festen Ziel (zuhause) anzukommen.


    Wenn ungefähr die halbe geschätzte Zeit abgelaufen ist, soll eine neue Positionsabfrage und eine neue Abschätzung der Restzeit bis zum Ziel erfolgen.
    Die nächste Abfrage dann wieder nach der halben geschätzten Restzeit u.s.w.


    Willkürliche Beispiele:
    Ist man bei Klick auf Start 100Km von zuhause entfernt dann könnten sich Positionsabfragen nach 30min, 22min, 15min , 8min, 3min, 2min, 1min ergeben.
    Ist man 200Km entfernt, dann nach 60min, 42min, 25min ........
    Oder anders ausgedrückt: Die Abfragen kommen umso häufiger, je näher man dem Ziel ist.


    Sobald die geschätzte Restzeit < 2min wird, soll eine Aktion ausgelöst werden (senden eines TCP/IP Kommandos an einen Server zuhause).


    Das Ganze soll auch noch funktionieren, wenn das Handy in den Standby geht, oder die App beendet wird,

    oder zum Beispiel wenn man heute startet, und erst übermorgen ankommt.
    Es sollte also im Hintergrund auch ohne die App laufen und möglichst nicht vom System rausgeworfen werden.
    Es gäbe da eine Menge Möglichkeiten:
    Service? Timer? Alarm?
    (welche Kombination läuft unabhängig im Hintergrund und wird nicht vom System beendet bzw. saugt mir nicht die Batterie leer?)
    Genügt jeweils die Last Known Position?
    (ich weiß nicht, wie aktuell die normalerweise ist. Eine Minute alt wäre ok, eine Stunde natürlich nicht.)


    Also meine Frage wäre:
    Mit welchen "Komponenten" (AlarmManager, Service, Thread, LastPosition .... ) Wie würde man das am besten realisieren?


    Vielen Dank

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!