Utilisation du Chronometer Android (Start,Pause, Stop)
Dans un Layout, placer un widget Chronometer (ici chronometer1).
Dans le code :
Chronometer mChronometer;
mChronometer = (Chronometer) findViewById(R.id.chronometer1);
Initialisation d’une variable pour tenir compte du temps passé :
long timeWhenStopped = 0;
Maj de la variable quand on stoppe le chronomètre :
timeWhenStopped = mChronometer.getBase() - SystemClock.elapsedRealtime(); mChronometer.stop();
Lors du lancement du chronomètre initialisation de ce dernier à l’aide de la variable :
mChronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped); mChronometer.start();
Remise à zéro du chronomètre :
mChronometer.setBase(SystemClock.elapsedRealtime()); timeWhenStopped = 0;
Lorsque le chronomètre est actif, il est possible de réagir lorsque le temps s’écoule :
mChronometer
.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener(){ @Override public void onChronometerTick(Chronometer arg0) { float fcountUp = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000; int nNbSec=(int)(fcountUp % 60); float nNbMin=fcountUp/60; float CpMin=(float)((float)nNbClick/nNbMin); int nCpmin=Math.round(CpMin); String asText = (int)nNbMin + "'" + nNbSec+"''"; MinPass.setText(asText); } });
Pour obtenir les secondes et minutes du temps passé :
chrono.stop();
nTempsTotal = nTempsTotal + SystemClock.elapsedRealtime() - timestart;
int minutes = (int)(nTempsTotal / 1000) / 60;
int seconds = (int) (nTempsTotal / 1000) % 60;
TspTot.setText("Temps : " + minutes + "'" + seconds + "''");
Exemple complet ici
