Autore Topic: Contare la durata  (Letto 1007 volte)

Offline Sebastian

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • Mostra profilo
Contare la durata
« il: 03 Novembre 2010, 15:23:39 CET »
0
Ciao a tutti!
per contare quanto tempo passa tra un determinato  evento e un altro ho scritto questo codice:
Codice (Java): [Seleziona]
//gestione del tempo
                TimerTask task = new TimerTask() {
                        @Override
                        public void run() {
                                Log.i("MiaAttività", "Secondi trascorsi:"+clock);
                                clock++;
                        }
                };
                timer = new Timer();
                timer.schedule(task, 0, 1000);
        }
       

In pratica dalla documentazione ho trovato Timer e TimerTask: ogni secondo incremento una variabile (clock) che mi rappresenta i secondi. (per fermarlo ho  fatto un metodo che blocca il timer e resetta il contatore clock).

Ora la DOMANDA é: esiste già qualcosa che mi conti il tempo che passa tra due eventi in automatico o devo per forza implementarlo io "a mano" tipo ora?

Mille grazie!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Contare la durata
« Risposta #1 il: 03 Novembre 2010, 15:35:49 CET »
+1
Come mai non hai usato l'orologio stesso del terminale invece che un Timer?

System.currentTimeMillis() | Android Developers()
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Sebastian

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • Mostra profilo
Re:Contare la durata
« Risposta #2 il: 03 Novembre 2010, 16:08:46 CET »
0
perchè fondamentalmente mi serve calcolare il tempo in "valore assoluto" (cioè se passano 3 secondi a me non interessa che siano passati dalle 10.00.00 alle 10.00.03) mi serve proprio il valore "3 secondi".  Con l'orologio stesso del terminale non ho visto un metodo  che mi restituisca esattamente questa informazione..

..o forse mi è sfuggito?

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Contare la durata
« Risposta #3 il: 03 Novembre 2010, 16:15:21 CET »
+1
Codice (Java): [Seleziona]
        long startTime = System.currentTimeMillis();
        doQualcheCosaDiMoltoPesanteELunghissimo();
        long totalTime = System.currentTimeMillis()-startTime;
        Log.d("Test", String.format("Caspita, sono passati ben %1$s millisecondi!!!", totalTime));

Offline Sebastian

  • Utente junior
  • **
  • Post: 81
  • Respect: 0
    • Mostra profilo
Re:Contare la durata
« Risposta #4 il: 03 Novembre 2010, 16:47:31 CET »
0
mi piace soprattutto il metodo "doQualcheCosaDiMoltoPesanteELunghissimo()"      :-P

ovviamente funziona anche come mi hai suggerito quindi mille grazie!   :-)

Lo sapete però che succede? che lo stesso tempo, misurato col Timer e contemporaneamente con l'orologio di sistema, riporta due tempistiche differenti..... capisco che siano sfasati ma che uno mi dica 12sec e l'altro 26 c'è un abisso! mah... 


A parte questo, grazie per l'aiuto!