2017-01-04 1 views
0

여러 발리 요청을 할 때 오류가 발생합니다. 먼저 로그인을 요청했지만 제대로 작동합니다. 로그인 프로세스가 끝나면 응용 프로그램에서 주 활동이 열립니다. 여기서 새 요청을하면 요청이 대기열에 추가됩니다. 그러나 요청은 실행되지 않습니다. 이것의 이유는 무엇입니까?android volley에서 복수 요청

이 코드는 기능을 로그인되어

private void LoginUser(final String email, final String password) { 

    String tag_string_req = "request_register"; 

    pDialog.setMessage("Giriş Yapılıyor ..."); 
    showDialog(); 

    StringRequest strReq = new StringRequest(Request.Method.POST, 
      URL_LOGIN, new Response.Listener<String>() { 

     @Override 
     public void onResponse(String response) { 
      try { 
       JSONObject jObj = new JSONObject(response); 
       boolean error = jObj.getBoolean("error"); 
       if (!error) { 
        JSONObject user = jObj.getJSONObject("user"); 
        int userId = user.getInt("UserId"); 
        int uId = user.getInt("UId"); 


        Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
        intent.putExtra("UserId", userId); 
        intent.putExtra("UId", uId); 
        startActivity(intent); 
        finish(); 
       } else { 
        String errorMsg = jObj.getString("message"); 
        Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show(); 
        hideDialog(); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show(); 
      hideDialog(); 
     } 
    }) { 

     @Override 
     protected Map<String, String> getParams() { 

      Map<String, String> params = new HashMap<String, String>(); 
      params.put("email", email); 
      params.put("password", password); 

      return params; 
     } 

    }; 
    strReq.setShouldCache(false); 
    LoginApplication.getInstance().addToRequestQueue(strReq, tag_string_req); 
} 

이 코드는 로그인 기능 이후에 사용자에 대한 datas을 얻을 수 있습니다 :

public void Sync(final Context context, final int uId) 
{ 
    String tag_string_req = "request_syncUser"; 
    db1 = new Database(context); 

    StringRequest strReq = new StringRequest(Request.Method.POST, 
      URL_LOGIN, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      //gelen tüm verileri local db ye at 
      try { 
       SQLiteDatabase db = db1.getWritableDatabase(); 
       JSONObject jObj = new JSONObject(response); 
       JSONArray responseUser = jObj.getJSONArray("user"); 
       boolean error = jObj.getBoolean("error"); 
       String message = jObj.getString("message"); 
       if(!error) { 
        for(int i=0; i<responseUser.length(); i++) 
        { 
         JSONObject user = responseUser.getJSONObject(i); 

         String u_name = user.getString("Name"); 
         String u_surname = user.getString("Surname"); 
         String u_email = user.getString("Email"); 
         String u_password = user.getString("Password"); 
         String u_isLogin = user.getString("isLogin"); 
         String u_isSync = user.getString("isSync"); 
         int u_uId = user.getInt("UId"); 

         ContentValues cv = new ContentValues(); 
         cv.put("Name", u_name); 
         cv.put("Surname", u_surname); 
         cv.put("Email", u_email); 
         cv.put("Password", u_password); 
         cv.put("isLogin", u_isLogin); 
         cv.put("isSync", u_isSync); 
         cv.put("UId", u_uId); 

         db.insertOrThrow("user", null, cv); 

         Toast.makeText(context, message ,Toast.LENGTH_LONG).show(); 
         Toast.makeText(context, u_name + u_surname,Toast.LENGTH_LONG).show(); 
        } 
       } else { 

       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }) { 
     @Override 
     protected Map<String, String> getParams() { 
      Map<String, String> params = new HashMap<>(); 
      params.put("uId", String.valueOf(uId)); 

      return params; 
     } 
    }; 
    strReq.setShouldCache(false); 
    LoginApplication.getInstance().addToRequestQueue(strReq, tag_string_req); 
} 

}

+0

코드를 게시하면 오류가 발생합니다. – Sharj

+0

내 질문 편집. – oflu1071

답변

0

그럼 우리가 코드를 볼 필요가?

그건 내 생각 엔 당신이 싱글 톤 패턴으로 큐를 만들거나 액세스하지 않는다고 말했습니다. 완벽한 추측. 항상 항상 항상 게시물 코드.