Android Volley Timeout'u işlemek için RetryPolicy
RetryPolicy
- Volley, RetryPolicy'inizi istekleriniz için uygulamak için kolay bir yol sağlar.
- Volley, tüm soketler için varsayılan Soket ve BağlantıTImeout değerini 5 saniyeye ayarlar.
RetryPolicy
zaman aşımı olduğunda belirli bir isteği nasıl yeniden denemek istediğinize dair mantığınızı uygulamanız gereken bir arayüzdür.
Bu üç parametre ile ilgilenir
- Zaman Aşımı - Her yeniden deneme girişiminde milis olarak Soket Zaman Aşımı değerini belirtir.
- Yeniden Deneme Sayısı - Yeniden denemeye başlama sayısı.
- Geri Kapalı Çarpanı - Her yeniden deneme denemesi için sokete ayarlanan üstel süreyi belirlemek için kullanılan bir çarpan.
Örn. Bu değerlerle RetryPolicy oluşturulmuşsa
Zaman Aşımı - 3000 ms, Tekrar Deneme Sayısı - 2, Geri Kapalı Çarpanı - 2.0
Yeniden Deneme Denemesi 1:
- zaman = zaman + (zaman * Geri Kapalı Çarpanı);
- zaman = 3000 + 6000 = 9000ms
- Soket Zaman Aşımı = zaman;
- 9 saniyelik Soket Zaman Aşımı ile gönderilen istek
Yeniden Deneme Denemesi 2:
- zaman = zaman + (zaman * Geri Kapalı Çarpanı);
- zaman = 9000 + 18000 = 27000ms
- Soket Zaman Aşımı = zaman;
- 27 saniyelik Soket Zaman Aşımı ile gönderilen istek
Yeniden Deneme Denemesi 2'nin sonunda hala Yuva Zaman Aşımı oluşursa Volley TimeoutError
, UI Hatası yanıt işleyicinize bir atar .
//Set a retry policy in case of SocketTimeout & ConnectionTimeout Exceptions.
//Volley does retry for you if you have specified the policy.
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));