🔁AsyncTask
Last updated
Last updated
© 2024 ~ Yunus Emre Ak ~ yEmreAk
🕊️ Verilen işlemi arka planda, sistemi işlerini engellemeden tamamlar.
🐞 Yapılandırma ayarlarından etkilenir, işlem yok edilip yeniden başlatılır
💫 Telefonu döndürme vs gibi işlemler yapılandırma ayarlarını değiştirir
🗑️ Aynı işlemin çokça yapılması RAM tüketimini arttırır
🌃 Uygulama kapatıldığında cancel()
metodu çalıştırılmadığı sürece çalışmaya devam eder
Önemli ve kritik işlemler için AsyncTaskLoader
tercih edilir
onPreExecute()
İşlem tamamlanmadan önce ara ara çağrılan metottur, genellikle % dolum bilgisi vermek için kullanılır
doInBackground(Params...)
onPreExecute()
metodu bittiği an çalışır, arkaplan işlemlerini yapan kısımdır. publishProgress()
metodu ile değişikleri UI Thread'e aktarır. Bittiğinde onPostExecure()
metoduna sonucu aktarır.
onProgressUpdate(Progress...)
publishProgress()
metodundan sonra çalışır, genellikle raporlama veye ilerleme adımlarını kullanıcıya göstermek için kullanılır
onPostExecute(Result)
Arkaplan işlemi tamamlandığında sonuç buraya aktarılır, UI Thread bu metot üzerinden sonucu kullanır.
onProgressUpdate
metodunda tüm adımları ele alırsanız, asenkron çalışma yapısı bozulur ve senkronize olarak çalışır
🏹String
değişkeni, doInBackground
metoduna aktarılacak verilerdir
🌌Void
yapısı, publishProgress
ve onProgressUpdate
metotlarının kullanılmayacağını belirtir
🔸Bitmap
tipi de, onPostExecute
ile aktarılan işlem sonucunun tipini belirtir
Son iki parametre (Void
ve Bitmap
) dışarıdan verilmez, sınıf içi parametrelerdir
🚫 İşlemi istediğin zaman cancel()
metodu ile iptal edebilirsin
🔙 cancel()
metodu işlem tamamlanmışsa False
döndürür
🙄 Biten işlemi iptal edemezsin
👮♂️ İşlemin iptal edilme durumunu doInBackground
metodunda isCancalled()
metodu kontrol etmemiz gerekmektedir
❣️ İşlem iptal edildiğin doInBackground
metodundan sonra onPostExecute
yerine onCancelled(Object)
metodu döndürülür
Varsayılan olarak onCancelled(Object)
metodu onCancelled()
metodunu çağırır, sonuç görmezden gelinir.