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