Zamanlanmış Görevler (Timer Kullanımı)

Java’da bazı işlemleri belli zaman aralıkları ile yapmamız gerekebilir. Bunun için Java’daki Timer ve TimerTask sınıflarını kullanabiliriz.

Bu kodları yazabilmek için iki Java kütüphanesine ihtiyacımız olacak. Bunları Timer kullanacağınız kod sayfanızın en başına ekliyorsunuz:

import java.util.Timer;
import java.util.TimerTask;

Sonradan sonlandırmak, tekrar başlatmak gibi işlemleri yapabilmek için genel bir değişken olarak belirleyelim. Bu kodları sınıf girişinin hemen altına ekliyoruz:

Timer myTimer = new Timer(true);
TimerTask myTask;

Burada myTimer ve myTask birer değişken. Şimdi sayacımızı çalıştıralım. Zamanlayıcı başlatmak için aşağıdaki kodu yazın:

myTask = new TimerTask(){
   public void run() {
      runOnUiThread(setTaskRunnable);
   }
};
myTimer.schedule(myTask, 0, 1000);

Burada zamanlayıcı için en önemli kod schedule(görev, geciktirme, süre aralığı) kodudur. Zaman belirtirken milisaniye cinsinden belirtirsiniz. Bu nedenle saniye olarak belirtecekseniz 1000 ile çarpıp sonucu yazın.

Örneğin her 5 saniyede bir bekleme yapmadan kodun çalıştırılması için: schedule(myTask, 0, 5000);

Önce 5 saniye bekleyip sonra her 10 saniyede bir kodun çalıştırılması için: schedule(myTask, 5000, 10000);

Yukarıda kullandığımız kodla birlikte zamanlayıcı başladı demektir. Süre aralıkları tamamladığında çalıştırılacak kodları belirlemek için;

    final Runnable setTaskRunnable = new Runnable() {
        public void run() {
           // Kodlar
        }
    };

Timer kodunun içinde belirttiğimiz setTaskRunnable bir fonksiyon adıdır. Belirtilen süre aralıklarında bu kod çalıştırılacaktır.

Zamanlayıcıyı durdurmak için .cancel() fonksiyonunu kullanabilirsiniz:

myTimer.cancel();

Hepinize iyi çalışmalar…