Timer / Chronometer in Background starten?

  • Hallo ich versuche derzeit einen Timer in meiner Anwendung einzubauen. Der aktuelle Timer läuft zwar, allerdings startet dieser eben nur, wenn die App im Vordergrund läuft.


    Zur App:


    Sie startet ein Service, welcher verschiedene Dinge abarbeitet. Bevor der Service seine Aufgaben abarbeiten kann, werden Sensoren abgefragt. Wenn diese Daten liefern darf der Timer anfangen zu laufen. Da dies teilweise auch mehrere Minuten dauern kann, muss ich nun eine Lösung entwerfen, die auch den Timer im Hintergrund starten kann.


    Habt ihr evtl. einen Tipp wie ich dies umsetzen kann?


    Grüße


    Marina

  • Der Benutzer soll darüber informiert werden, wie lange die Aufgabe bereits im Service läuft. Dieser darf eben nur dann anfangen, wenn alle Sensoren laufen und mind. einen Wert zuvor erhalten haben.


    Als Beispiel kannst du dir z.b irgend eine App nehmen die die bereits laufende Zeit eines Downloads anzeigt, bzw. die laufzeit des GPS (Wenn GPS empfang vorhanden)

  • Das wird aber nix mit einem Timer allein.
    Du könntest den eigentlichen Timer mit in den Service werfen und von der App aus alle x Sekunden eine Methode des Services fragen, wie lange er denn schon läuft.


    Alternativ legst Du nur den Zeitstempel des Starts über eine Methode in den Service und startest bei Aufruf der App den Timer. Dann addierst Du die vergangene Zeit des Zeitstempels bis zum Start des Timers zu jeder Sekunde hinzu.


    Oder Du packst Start- und Endzeitstempel der einzelnen Läufe in eine Datenbank und rödelst mit einem ContentProvider drüber.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Ah ok, dachte es gäbe eine einfachere Möglichkeit :D Das haut natürlich die aktuelle Umsetzung wieder komplett um (Start / Stop / Pause)


    Also bleibt mir der Weg über Broadcasts in diesem Fall auch nicht erspart (Der Service läuft ja nun in einem eigenen Prozess).

  • Ach und gibt es eig. noch eine andere Möglichkeit mit dem Service zu kommunizieren, als über Broadcasts (Wenn dieser im eigenen Prozess läuft) ? Will nur ungern ständig das ganze Objekt auseinander nehmen und in einem intent einfügen.

  • Meines Wissens dank fehlender Zeiger und Distributed Objects: nö, nur Broadcasts.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

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