Android
Compte à rebours
Recherche…
Paramètres
Paramètre | Détails |
---|---|
long millisInFuture | La durée totale de la minuterie, c'est-à-dire à quelle distance vous souhaitez que le minuteur se termine. En millisecondes. |
long countDownInterval | L'intervalle auquel vous souhaitez recevoir les mises à jour du minuteur. En millisecondes. |
long millisUntilFinished | Un paramètre fourni dans onTick() qui indique la durée restante de CountDownTimer. En millisecondes |
Remarques
CountDownTimer est une classe plutôt simple - elle fait très bien une chose. Comme vous ne pouvez que démarrer / annuler un CountDownTimer, vous devez implémenter la fonctionnalité de pause / reprise, comme indiqué dans le deuxième exemple. Pour des fonctionnalités plus complexes ou pour spécifier une horloge qui doit s'exécuter indéfiniment, utilisez l'objet Timer .
Création d'un compte à rebours simple
CountDownTimer est utile pour effectuer plusieurs fois une action dans un intervalle régulier pendant une durée définie. Dans cet exemple, nous mettrons à jour une vue texte toutes les secondes pendant 30 secondes pour indiquer le temps restant. Ensuite, lorsque la minuterie se termine, nous allons définir le TextView pour dire "Terminé".
TextView textView = (TextView)findViewById(R.id.text_view);
CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
}
public void onFinish() {
textView.setText("Done.");
}
}.start();
Un exemple plus complexe
Dans cet exemple, nous allons suspendre / reprendre le CountDownTimer basé sur le cycle de vie de l'activité.
private static final long TIMER_DURATION = 60000L;
private static final long TIMER_INTERVAL = 1000L;
private CountDownTimer mCountDownTimer;
private TextView textView;
private long mTimeRemaining;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text_view); // Define in xml layout.
mCountDownTimer = new CountDownTimer(TIMER_DURATION, TIMER_INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
mTimeRemaining = millisUntilFinished; // Saving timeRemaining in Activity for pause/resume of CountDownTimer.
}
@Override
public void onFinish() {
textView.setText("Done.");
}
}.start();
}
@Override
protected void onResume() {
super.onResume();
if (mCountDownTimer == null) { // Timer was paused, re-create with saved time.
mCountDownTimer = new CountDownTimer(timeRemaining, INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
timeRemaining = millisUntilFinished;
}
@Override
public void onFinish() {
textView.setText("Done.");
}
}.start();
}
}
@Override
protected void onPause() {
super.onPause();
mCountDownTimer.cancel();
mCountDownTimer = null;
}