Android REST istemcisi için Retrofit 2 kitaplığını kullanıyorum. Güçlendirme kendini senkronize ve senkronize olmayan bir talebi destekler (here numaralı telefona bakınız), bunun nedeni bir iş parçacığını engellememek ve böylece android tarafından kesintiye uğramamaktır. Pratikte, yerel bir AsyncTask
veya eşzamanlı aramalarda eşzamanlı çağrıları doğrudan Retrofit'ten kullanmak daha mı iyidir? Birinden diğerine tercih edilirse, teknik nedenler nelerdir?Güçlendirme 2 android için en iyi uygulama: AsyncTask'ta asenkronize istek veya senkronize istek mi?
Güçlendirme 2 android için en iyi uygulama: AsyncTask'ta asenkronize istek veya senkronize istek mi?
cevap
'un popüler REST istemcilerinden herhangi birinin'u kullanmanın başlıca nedenlerinden biri (düzeltme, voleybol, vb.), Uygulama katmanında yönettiğiniz ayrıntı miktarını azaltmalarıdır. Bu ayrıntılardan biri, ağ isteğinizin ana iş parçacığından kaynaklandığından emin olmaktır. Zaten başka özellikler için kullandıkları bir kütüphane daha az törenle aynı işlevselliği sağladığında neden bir AsyncTask
kullanıyor? Düşünebilmemin tek nedeni - kütüphanenin iş parçacığının çok iyi olduğunu düşünmüyorsun. Bu endişe, güçlendirme 2 için geçerli değildir, async çağrılarını göndermek için OkHttp
kullanır. OkHttp bir süredir çalışmakta ve yaygın olarak kullanılmaktadır, async isteklerini yürütmek için kendi iş parçacığı havuzunu yönetir ve sağlamdır.
Bu nedenle, uyumluluk uyumsuzluğunu kullanmanın üst tarafı daha temiz koddur ve geriye doğru hiçbir uyumsuzlukla eşzamanlı senkronizasyon çağrıları ile AsyncTask
biliyorum. Senkronizasyon çağrılarını kullandığım tek zaman, kodumun başka bir nedenden ötürü arka plan iş parçacığında yürütülmesi. Ağ araması için sadece ayrı bir iş parçacığı veya eşzamansız oluşturma ve bunun yerine enqueue
kullanın.