AsyncTask Nedir?

AsyncTask, android tarafından sağlanan soyut(abstract) bir sınıftır. Bu sınıf bize arka planda ağır işler yapma ve kullanıcı arayüzü(ui) iş parçacığının akışını ve kullanıcı etkileşimini engellememe ve böylece uygulamayı daha duyarlı hale getirme özgürlüğü verir.

Android uygulaması başlatıldığında tek bir iş parçacığı üzerinde çalışır. Bu tek iş parçacığı modeli görevleri yanıtlamak için uzun zaman alan işlemler nedeniyle uygulamanın yanıt vermemesine neden olabilir. Bundan kaçınmak için, Android AsyncTask‘ı, arka planda, özel olarak ayrılmış bir iş parçacığında ağır görevleri yerine getirmek ve sonuçları tekrar UI iş parçacığına getirmek için kullanıyoruz.

*AsyncTask yaklaşımını çok uzun sürmeyen arka plan işlemleri için kullanabiliriz. Çok uzun süren işlemler için başka multithreading yaklaşımları da mevcuttur.

Bir Android AsyncTask soyut sınıfında kullanılan temel yöntemler aşağıda görüldüğü gibidir :

  • onPreExecute : Bu metot, doInBackGround() metodu işlemeye başlamadan önce yürütülen kodu içerir. İçerisini doldurmak ve override etmek zorunlu değildir.
  • doInBackground : Bu yöntem arka planda yürütülmesi gereken kodu içerir. Bu metotta publishProgress() metodunu kullanarak arayüz iş parçacığına sürece ilişkin bilgileri istediğimiz sıklıkta gönderebiliriz. Arka plan işlemi tamamlandığında ise için onPostExecute() metoduna bir değer döndürebiliriz. Bu metodu mutlaka override etmemiz gerekir.
  • onProgressUpdate() : Bu metot, doInBackground() içerisinde publishProgress() metodu ile gönderilen güncelleme bilgilerini alır. Arka planda devam eden, sürecin ilerleyişine ilişkin bu güncelleme bilgilerini; kullanıcı arayüzünü güncellemek için kullanabilir. Bu metodu override etmek zorunlu değildir.

AsyncTask Parametre Veri Tipleri

AsyncTask’ın oluşturulma yapısında AsyncTask<Type1, Type2, Type3> üç parametre tipi içerir.

  • Type1 doInBackground() metoduna verilecek parametrelerin tipini ya da sınıfını belirler.
  • Type2 doInBackground() metodunun işleyişi sırasında publishProgress() ile onProgressUpdate() metoduna verilecek değişkenin tipini belirtir.
  • Type3 ise doInBackground() metodunun döndüreceği ve onPostExecute() metodunun kabul edeceği parametre tipidir.

Yukarıda temsil edilen biçime göre tekrar özetlersek; bir Android AsyncTask sınıfında kullanılan üç Generic tip şöyledir:

  • Params (parametreler) : AsyncTask çalıştırılması (execute) sonrası AsyncTask’e gönderilen parametre türü
  • Progress (ilerleme) : Arka plan işlemi sırasında yayınlanan ilerleme parametrelerinin türü
  • Result (sonuç): Arka plan işlemi sonucu döndürülen parametre türü

AsyncTask Nasıl Kullanılır? adlı yazıyı okumanızı tavsiye ederim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir