Android Studio AsyncTask Sınıfı
Uzun bir aradan sonra merhabalar arkadaşlar;
Bugün size Android Studio Üzerinde AsyncTask Kullanımından bahsedeceğim.
Öncelikle AsyncTask dediğimiz olay; Main Thread(Ana Süreç) üzerinde çalışması gereken ama UI threadi yorup zaman aşımıyla sürecin ölmemesi ve kullanıcınında programı silmemesi için bir yeni thread üzerinden yapılacak işlemlerin yürütüldüğü bir yapıdır.
AsyncTask sınıfı abstract bir sınıftır ve kullanılması için başka bir sınıf üzerinden extend edilmesi gerekir. AsyncTask sınıflarında doInBackground metodu bulunması zorunludur ve arka planda gerçekleştirilecek bütün işlemler bu metod içerisinde yazılır. Başka metotları da vardır:
- onPreExecute: Arka plan işlemi başlamadan önce ön yüzde değiştirilmesi istenen değişkenlerin (ProgressBar gibi animasyonlar) ve AsyncTask içinde gerekli değişkenlerin değer ataması yapılır.
- doInBackground: Arka planda yapılması istenen işlem burada gerçekleşir. Bu metod içinde yapılan işlemler ön yüzde kullanıcının uygulamayı kullanmasını kesinlikle etkilemez. Eğer buradaki işlemler sonucunda ana akışa bir değişken gönderilmesi gerekiyorsa return metodu ile bu değişken onPostExecute metoduna paslanabilir.
- onPostExecute: doInBackground metodu tamamlandıktan sonra işlemlerin sonucu bu metoda result değişkeni ile gönderilir. Buradaki işlemler ana akışı etkiler ve herhangi bir hataya sebep olmaz. Arka plandaki işlemden gelen bir veri arayüzde göstermek istersek bu metod içinde gösterim işlemi yapabiliriz.
- onProgressUpdate: Eğer doInBackground metodu içerisinde yapılan işlemin ilerleme durumunu (örneğin dosya indirme yüzdesi) kullanıcıya bildirmek isteyelim bu metodu kullanabiliriz. doInBackground metodu içerisinde publishProgress metodunu kullanarak ilerleme durumunu onProgressUpdate metoduna iletip arayüz içerisinde buna göre bir animasyon yapabiliriz.
- onCancelled: Eğer herhangi bir sebepten dolayı AsyncTask iptal edilirse bu metod uyarılır. Burada kullandığımız kaynakları temizleyebiliriz.