最近在项目中用Volley的时候发现一个请求的问题:当网络不好的时候请求接口有时候会发出去多次请求,而且是不停的一直请求不会停下来,抓请求后发现请求周期就是设置的超时时间,如图:
查找资料并查看源码后解决问题,源码的DefaultRetryPolicy类中有一个构造函数
/**
* Constructs a new retry policy.
* @param initialTimeoutMs The initial timeout for the policy.
* @param maxNumRetries The maximum number of retries.
* @param backoffMultiplier Backoff multiplier for the policy.
*/
public DefaultRetryPolicy(int initialTimeoutMs, int maxNumRetries, float backoffMultiplier) {
mCurrentTimeoutMs = initialTimeoutMs;
mMaxNumRetries = maxNumRetries;
mBackoffMultiplier = backoffMultiplier;
}
这儿能够传入一个maxNumRetries值,这个值就是控制重复请求次数的,设置为0就可以了
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(30*1000,0,0f));