我嘗試一個接一個地執行請求而沒有用戶參與時遇到問題。 當運行應用程序,我可以看到這個記錄Android排球多重請求。調試工作正常,運行應用程序工作不正確
Posting params: {[email protected], tag=getConnectors}
verifyOperation onResponse --> 1 operation
verifyOperation onResponse --> {"result":"85","msg":"ok, user register, your password is your number phone!"}
response 1 operation is ok call -->getConnectors
Posting params: {[email protected], tag=geinfodates}
verifyOperation onResponse --> 2 operation
verifyOperation onResponse -->{"result":"85","msg":"ok, user register, your password is your number phone!"}
但當調試應用程序,爲2運算的結果是正確的:
Posting params: {[email protected], tag=geinfodates}
verifyOperation onResponse --> 2
verifyOperation onResponse -->{"token":"xxxxxxxx"}
我有一個singlenton類,在那裏我有我的StringRequest
與不同類型的聽衆
void verifyOperation(final HashMap paramOperation, final int opcion,final String url) {
pref = new PrefManager(context);
String urlFinale=url;
StringRequest strReq = new StringRequest(Request.Method.POST,
urlFinale, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
switch (opcion) {
case 1:
if (operation.result >= 0)
break;
case :2 .....
},新Response.ErrorListener(){
的 @Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
Toast.makeText(context,
error.getMessage(), Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() {
HashMap<String, String> profile = new HashMap<>();
Set set = paramOperation.entrySet();
Iterator iterator = set.iterator();
//String number=pref.getMobileNumber();
String mail = pref.getMail();
switch (opcion) {
case 1:
break;
case 2:
profile = pref.getUserDetails();
break;
}
最後我stringrequest添加到我的singlenton類
// Adding request to request queue
MyApplication.getInstance().addToRequestQueue(strReq);
public <T> void addToRequestQueue(Request<T> req) {
req.setTag(TAG);
req.setRetryPolicy(new DefaultRetryPolicy(
MY_SOCKET_TIMEOUT_MS,
-1, //intentos
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getRequestQueue().add(req);
}
我使用默認參數RetryPolicy起到控制凌空請求,但總是失敗。 我不明白,因爲我的第二個請求的答案可能只是第一個答案,要調用第二個操作,我需要通過第一個答覆 第二個調用永遠不會返回與第一個相同的數據,如所見在我的調試日誌中
謝謝!