結構よく起きるので、メモ。
これが起きてしまう原因は、サーバのレスポンス速度が遅いことにある。
サーバ内でメール送信してたりとか(本当はキューに溜めるべきだが)、アクセスが多くなってきたりしたりとかで遅くなると、Volleyはもう一回リクエストを送ってしまうのだ。
対処法
Volley の RetryPolicy を更新してあげればよい。
public RequestQueue getRequestQueue() { if (mRequestQueue == null) { mRequestQueue = Volley.newRequestQueue(getApplicationContext()); } return mRequestQueue; } public <T> void addToRequestQueue(Request<T> req) { req.setTag(TAG); req.setRetryPolicy(new DefaultRetryPolicy(50 * 1000, 0, 1.0f)); getRequestQueue().add(req); }
これで結構待ってみてくれるようになって、一件落着。