AsyncTask sınıfı abstract bir sınıftır ve extends edilmesi gerekmektedir. Tek abstract methodu Result doInBackground(Params... params) method'udur ve bu method override edilmek zorundadır. Aşağıda olayları dinleyen önemli methodların override edildiği bir sınıf görülmektedir :
public class DefaultAsyncTask extends AsyncTask<Params, Progress, Result> {
@Override
protected Result doInBackground(Params... params) {
// çalışan kod result döndürülmeli
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Progress... values) {}
@Override
protected void onPostExecute(Result result) {}
@Override
protected void onCancelled(Result result) {}
}
Önemli method'lar aşağıdaki gibidir :
- onPreExecute() : Arkaplan kodu çalışmadan önce çağrılır. Arkaplan kodu çalışmasına hazırlık için kullanılabilir
- Result doInBackground(Params... params) : Arkaplanda çalışan kod bu method içine yazılır
- void onProgressUpdate(Progress... values) : Arkaplanda çalışma sırasında publishProgress(Progress...) fonksiyonu çağrılırsa onProgressUpdate method'u çağrılmış olur. Çalışma hakkında bilgi vermek içindir (Örneğin bir dosyanın download edilme durumu)
- void onPostExecute(Result result) : Arkaplan çalışması tamamlandığında çağrılmaktadır
- void onCancelled(Result result) : Dışarıdan cancel(boolean) method çağrıldığı zaman onCancelled method'u çağrılmaktadır
AsyncTask generics kullanan bir sınıftır ve üç tane parametre sınıfı alır. Bu sınıflar aşağıdaki şekillerde methodlarda kullanılır
public class DefaultAsyncTask extends AsyncTask<Params, Progress, Result> {
@Override
protected Result doInBackground(Params... params) {
// execute ve Result donulmeli
return null;
}
@Override
protected void onProgressUpdate(Progress... values) {
}
@Override
protected void onPostExecute(Result result) {
}
@Override
protected void onCancelled(Result result) {
}
}
Bu parametrelerin açıklaması aşağıdaki gibidir :
- Params : arka planda kodun çalışması için gerekli olan ve doInBackground methodu çağrılması sırasında verilen parametre sınıfı
- Progress : çalışma sırasında onProgressUpdate methoduna bildirilen sınıf
- Result : arka plandaki çalışma tamamlandıktan sonra onPostExecute methoduna , iptal olduğu zaman da onCancelled methoduna verilen parametre sınıf