JAVA – Usiamo le API di Android per creare un timer

Roberto Orgiu

Programmare Android

 

Tutti quanti conosciamo l’applicazione dell’orologio di Android, ma non tutti magari si sono accorti che è uno dei software più personalizzati (e a volte anche sostituiti) dai produttori, tant’è che l’algoritmo per riuscire a lanciare quello giusto per ogni tipo di telefono e tutto fuorché preciso o infallibile.

Oltre a questo fattore, come possiamo quindi sfruttare una funzionalità come quella del timer, sfruttando l’orologio già presente nel nostro robottino? Dovremmo trovare l’applicazione e lanciare l’Intent giusto con i relativi Extra in modo da poter avviare solamente questa Activity, oppure potremmo scriverne uno con poche righe di codice.

L’oggetto che andremo ad utilizzare è il CountDownTimer, contenuto in Android.os, che ci permette di specificare, nel costruttore, quanti millisecondi vogliamo che duri il conto alla rovescia e ogni quanti deve invece ticchettare. Questa classe non è però instanziabile, quindi dovremo eseguire l’ovveriding dei due meventi principali, onFinish e onTick e accodare alla dichiarazione il metodo per avviare il conto alla rovescia.

CountDownTimer cdt = new CountDownTimer(countdownTime,1000){
@Override
public void onFinish() {
//Cosa fare quando finisce
}

@Override
public void onTick(long millisUntilFinished) {
//cosa fare ad ogni passaggio
}
}.start();

Se invece vogliamo fermare il countdown, quello che dobbiamo fare è richiamare il metodo cancel sull’oggetto CountDownTimer che abbiamo appena utilizzato.

cdt.cancel();

Il tutto viene gestito dalle API di Android e non avremo bisogno di dichiarare permessi o utilizzare dei thread, tutto può essere eseguito comodamente dal processo principale dell’Activity.

Se volete dare uno sguardo ai sorgenti, potete consultare l’apposito post sul nostro forum o scaricare l’APK da questo link.

Android SDK