🌃Asenkrona Giriş

👀 Asenkron İşlemleri Tanıyalım

  • 💫 Ayrı bir Thread üzerinden gerçekleşen bu işlemleri sistemin ilerlemesi engellemez

  • 🙋‍♂️ İşleri tamamlandığı zaman UI Thread'e dahil olurlar

  • AsyncTask veya AsycnTaskLoader yapıları kullanılır

🆚 İkisi Arasındaki Temel Farklar

Her ikisi de sistemi engellemeden çalışan bir yapıya sahiptir

AsyncTask

AsyncTaskLoader

Direkt olan çalışır

Dolaylı olarak çalışır

Yapılandırma ayarları değiştiğinde iptal olur ve yeniden başlatılır

Yapılandırma ayarlarından etkilenmez

Geri dönüş vermeyecek işlemlerde kullanılır

Geri dönüşümlü işlemlerde kullanılır

Kısa ve iptal edilebilir işlemlerde tercih edilir

Uzun ve iptal edilemeyecek işlemlerde tercih edilir

Telefonu döndürme gibi işlemler yapılandırma ayarlarını değiştirir.

Genel olarak AsyncTaskLoader en sık kullanılan yapıdır.

🧱 UI Thread

Android üzerindeki tüm görüntü işlemlerinin yapıldı alandır.

  • UI Thread engellenmemeli

  • UI Thread sadece görsel işlemler için kullanılmalıdır

  • Tüm işlemler 16ms'den kısa bir sürede tamamlanmalıdır

Yaklaşık olarak 5s'den uzun süren işlemler "application not responding" (ANR) diyaloğunu oluşturur ve kullanıcı bunu görmesi durumunda uygulamayı kapatıp, siler 😥

⭐ Diğer Asenkron İşlemler

🏷️ Etiketleme ile Asenkron

  • 👷‍♂️ @WorkerThread gibi etiketlerle asenkron çalışması gereken metotlar tanımlanır

  • 🦸‍♂️ Kod hakimiyetini artırmak için tercih edilir

  • 📢 Thread işlemini otomatik olarak yapmaz, detaylar için buraya bakabilirsin

‍🧙‍♂ Detaylı bilgi için Thread annotations alanına bakabilirsin.

🎃 Kotlin Coroutine

  • 🕊️ Thread işlemlerini kolaylaştıran bir hafif yapıdır

  • 👮‍♂️ Main (UI), IO, Default thread yapıları ile arka plan işlemlerini yönetirsiniz

  • 💁‍♂️ AsyncTask kullanmaya gerek kalmaz

  • implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1' ile build.gradle dosyasına dahil etmen gerekmektedir

🧱 Dispatchers.Main🔣 Dispatchers.IO🎳 Dispatchers.Default

UI Thread işlemleri

Disk ve network işlemleri

CPU gerektiren işlemler

Fonksiyon çağırma

Database

Liste sıralama

View işlemleri

Dosya okuma & yazma

JSON parsing

LiveData işlemleri

Ağ işlemleri

DiffUtils

🔗 Harici Bağlantılar

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk