Sekunden zählen

  • 1 Antworten
  • Letztes Antwortdatum
L

laren

Neues Mitglied
0
Hi,

Ich bin gerade dabei eine App über die Handynutzung zu schreiben.
Zum Beispiel soll die Zeit im Netz, die Zeit die das Handy genutzt wird....in Sekunden mitgezählt werden.
Ich habe einfach einen BroadcastReceiver benutzt, der auf die entsprechenden Ereignisse reagiert und einen Timer startet.
Aber genau bei dem Timer gibts die meisten Probleme. Jedes Mal zeigt er die ersten 4 Sekunden richtig an, dann fängt er an wild zu springen 6, 8, 14, 32, 80....
Ich habe schon mehrere Versionen versucht(jedes Mal ist der Timer durch einen Thread gestartet:

1.)
public class TimerService {
private long startTime;
private long endTime;
public long pastTime;
private boolean running;

public void start() {
running = true;
startTime = System.currentTimeMillis();

}

/**
* @return the ctime
*/
public long getPastTime() {
endTime = System.currentTimeMillis();
pastTime = endTime - startTime;
pastTime = pastTime / 1000;
return pastTime;
}

2.)
while(true){
sleep(1000)
sec++;
}

3.) ich habe einen eigenen Timer geschrieben, der im Intervall von 1000 millis gestartet wird.

Trotzdem springen die Sekunden immer fast exponentiell.

Wie schreibe ich einen blöden Sekundenzähler in Android?:lol:

Grüße
 
Was willst du den genau erreichen ???

Einen Timer zu starten klaut doch nur wieder Speicher.

Wenn dein Broadcastreceiver anspringt, dann speichere doch einfach mit

long aktuelleZeit = System.currentTimeMillis();

den Startzeitpunkt und wenn deine App sich beendet bzw. der Receiver das Signal für Ende bekommt, dann speicherst du

long endZeit = System.currentTimeMillis();


int sekunden = ((endZeit-aktuelleZeit)/1000) % 60;
 
Zurück
Oben Unten