Timer biasa digunakan untuk menghitung waktu secara berulang. Pada pemrograman berorientasi objek (OOP=Object Oriented Programming), timer digunakan digunakan untuk mengeksekusi baris script di dalamnya dalam rentang waktu yang telah ditentukan secara berulang. Dalam ‘etimologi’ sebuah objek, event ini disebut sebagai event ‘OnTimer’.
Pemrograman Android menggunakan Java juga mengenal adanya objek Timer ini. Biasanya yang digunakan untuk menangani Timer adalah class TimerTask. Namun kali ini penulis akan mencoba ‘trik’ lain yang akan menciptakan sebuah ‘objek’ timer dengan cara sederhana, mudah digunakan dan gampang dipahami. Trik kali adalah dengan memanfaatkan class Handler untuk menciptakan sebuah thread yang berulang setiap satuan waktu. Inti dari trik ini adalah menggunakan salah satu method dari Handler yakni postDelayed(Runnable r, long delayMillis). Dengan menempatkan kembali method ini ke dalam Runnable maka akan tejadi efek nested yang akan menyebabkan pengeksekusian script di dalam Runnable yang berulang sehingga berfungsi layaknya event ‘OnTimer’ :). Untuk lebih jelasnya simaklah contoh script sebagai berikut :
Nama program : ‘timerku.apk’.
Objective : menampilkan angka secara berurutan tiap 1 detik.
Langkah-langkah development :
- Buka IDE Eclipse ADT (Android Developer Tools) dan buat project baru dengan nama ‘timerku’ melalui menu File | New | Android Application Project. Tekan tombol ‘Next’ sampai selesai jendela wizard-nya.
- Buka file activity_main.xml pada folder /res/layout (lihat jendela ‘Package Explorer’) dan tambahkan satu komponen textView ke dalam form designer. Beri id komponen tersebut dengan nama ‘textView’ pada file xml-nya.
- Buka file MainActivity.Java pada folder /src dan tambahkan kode berikut untuk menangani timer
public class MainActivity extends Activity {
private Handler handler = new Handler();
int i=0;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//panggil timer
handler.postDelayed(runnable, 1000);
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
TextView data = (TextView) findViewById(R.id.textView1);
i+=1;
data.setText(Integer.toString(i));
handler.postDelayed(this, 1000);
}
};
4. Run project dan amati tulisan pada textView yang terus bertambah tiap satu detik (1000 ms).
Penjelasan program :
Baris [2] : menciptakan sebuah instance dari class Handler dengan nama ‘handler’.
Baris [10] : memanggil timer melalui class handler dan method postDelayed dengan parameter (runnable, 1000). Parameter ‘runnable’ menunjukkan kumpulan script yang yang akan dieksekusi dalam sebuah thread ‘Runnable’, sedangkan parameter ‘1000’ menunjukkan jeda waktu kapan runnable tersebut dieksekusi dengan satuan milli second.
Baris [13] s.d [22] adalah thread Runnable dengan nama ‘runnable’ yang berisi kumpulan script yang harus dieksekusi ketika dipanggil handler. Perhatikan baris [20] bahwa dalam blok thread runnable dipanggil kembali handler.postDelayed. Dengan demikian akan terjadi loop nested (berulang/bersarang) yang akan menimbulkan efek ‘onTimer’ secara berulang dengan jeda waktu tiap 1000 ms.
Demikian tutorial tentang timer di Android menggunakan Java kali ini, semoga bermanfaat untuk Anda. Objek Timer ini banyak sekali digunakan dalam ‘falsafah’ pemrograman, jadi ada baiknya Anda pelajari secara khusus bagaimana metode yang terbaik dan termudah agar project Anda bisa cepat selesai dengan hasil yang terbaik. Bagi yang berminat source code program di atas seutuhnya, silahkan tulis email Anda di jendela komentar di bawah.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
mas yang di instal yang mana
ga ada yg perlu diinstal. Cukup ditulis aja script-nya seperti contoh di artikel
codingx donk,
klo bs ama step2x yang jelas…
thanks before
artikel di atas sdh ada coding-nya, sudah ada step by step-nya. mana lagi yg kurang jelas?
Terimakasih artikelnya sangat bermanfaat,yg mau saya tanyakan :kalau mau menghapus delay time di apk apakah script pemanggilan delay di hapus?trimakasih
iya mas
mas nanya dong giman ya cara nya kita bikin if dengan waktu yang jadi kondisi nya kaya aplikasi adzan gitu
pake function getTime() dari class SimpleDateFormat aja mas. Kalo udah dapetin waktu tinggal pake ‘if’ aja. Contohnya ada di http://saptaji.com/2014/09/21/mengambil-data-tanggal-dan-waktu-di-android-menggunakan-java/