Untuk menangani Timeout Android Volley yang perlu Anda gunakan RetryPolicy
Coba LagiPolicy
- Volley menyediakan cara mudah untuk menerapkan RetryPolicy Anda untuk permintaan Anda.
- Volley menetapkan Socket & ConnectionTImeout default menjadi 5 detik untuk semua permintaan.
RetryPolicy
adalah antarmuka tempat Anda perlu menerapkan logika tentang bagaimana Anda ingin mencoba kembali permintaan tertentu ketika terjadi timeout.
Ini berkaitan dengan tiga parameter ini
- Timeout - Menentukan Socket Timeout dalam millis per setiap percobaan ulang.
- Jumlah Percobaan - Jumlah percobaan ulang yang dicoba.
- Back Off Multiplier - Pengganda yang digunakan untuk menentukan waktu eksponensial yang diatur ke soket untuk setiap upaya coba lagi.
Misalnya Jika RetryPolicy dibuat dengan nilai-nilai ini
Timeout - 3000 ms, Jumlah Mencoba Lagi - 2, Pengali Mundur - 2.0
Coba lagi Mencoba 1:
- time = time + (time * Back Off Multiplier);
- waktu = 3000 + 6000 = 9000 ms
- Socket Timeout = waktu;
- Permintaan dikirim dengan Socket Timeout of 9 Secs
Coba lagi Mencoba 2:
- time = time + (time * Back Off Multiplier);
- waktu = 9000 + 18000 = 27000 ms
- Socket Timeout = waktu;
- Permintaan dikirim dengan Socket Timeout of 27 Secs
Jadi pada akhir Coba Lagi 2 jika masih terjadi Socket Timeout, Volley akan melempar ke TimeoutError
dalam pengendali respons Kesalahan UI Anda.
//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));