অ্যান্ড্রয়েড ভলির সময় শেষ করার জন্য আপনাকে ব্যবহার করা দরকার RetryPolicy
RetryPolicy
- ভল্লি আপনার অনুরোধগুলির জন্য আপনার রিট্রিপলসি বাস্তবায়নের একটি সহজ উপায় সরবরাহ করে।
- ভলি সমস্ত অনুরোধের জন্য 5 সেকেন্ডে ডিফল্ট সকেট এবং সংযোগআইটিআউট সেট করে।
RetryPolicy একটি ইন্টারফেস হ'ল টাইমআউট হওয়ার পরে আপনি কীভাবে কোনও বিশেষ অনুরোধ পুনরায় চেষ্টা করতে চান সে সম্পর্কে আপনার যুক্তিটি প্রয়োগ করতে হবে।
এটি এই তিনটি পরামিতি নিয়ে কাজ করে
- সময়সীমা - প্রতি পুনরায় চেষ্টা করার জন্য প্রতি মিলিতে সকেটের সময়সীমা নির্দিষ্ট করে।
- পুনরায় চেষ্টা করার সংখ্যা - পুনরায় চেষ্টা করার সময় সংখ্যা।
- ব্যাক অফ মাল্টিপ্লায়ার - একটি গুণক যা প্রতিটি পুনরায় চেষ্টা করার জন্য সকেটে সেট করা এক্সফোনেনশিয়াল সময় নির্ধারণ করতে ব্যবহৃত হয়।
প্রাক্তন জন্য। যদি এই মানগুলি নিয়ে পুনরায় চেষ্টা করা হয় ry
সময়সীমা - 3000 এমএস, পুনরায় চেষ্টা করার সংখ্যা - 2, গুণিতক ব্যাক অফ - 2.0
চেষ্টা 1:
- সময় = সময় + (সময় * ব্যাক অফ গুণক);
- সময় = 3000 + 6000 = 9000 মিমি
- সকেটের সময়সীমা = সময়;
- 9 সেকেন্ডের সকেট সময়সীমার সাথে অনুরোধ প্রেরণ করা হয়েছে
চেষ্টা 2:
- সময় = সময় + (সময় * ব্যাক অফ গুণক);
- সময় = 9000 + 18000 = 27000 মিমি
- সকেটের সময়সীমা = সময়;
- 27 সেকেন্ডের সকেট সময়সীমার সাথে অনুরোধ প্রেরণ করা হয়েছে
তাই চেষ্টা আবার চেষ্টা করুন 2 এর পরেও যদি সকেটের সময়সীমা ঘটে তবে ভলি TimeoutErrorআপনার ইউআই ত্রুটির প্রতিক্রিয়া হ্যান্ডলারটিতে ফেলে দেবে ।
//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));