2015-01-10 11 views
21

मैं अपने आवेदन में वॉली नेटवर्क लाइब्रेरी का उपयोग कर रहा हूं।एंड्रॉइड वॉली डेटा दो बार

समस्या यह है कि नेटवर्क कनेक्शन धीमा होने पर यह डेटा एक से अधिक बार भेज रहा है।

और मैं गूगल इस मुद्दे के बाद, सभी मैं इस मुद्दे के बारे पा सकते हैं बिंदु के नीचे है:

connection.setChunkedStreamingMode(0); 

लेकिन मैं अपने वॉली पुस्तकालय Hurlkstack कक्षाएं संपादित करने में सक्षम नहीं हूँ।

इसे कहते हैं:

इस वर्ग फ़ाइल के जार कंटेनर एंड्रॉयड निजी पुस्तकालयों जो स्रोत अनुलग्नकों के संशोधन की अनुमति नहीं है पर यह प्रविष्टियां के हैं।

क्या मैं कुछ एक मेरी मदद कर सकते

मैं निम्नलिखित कोड मैं कहाँ को संशोधित करना चाहिए है क्या करना चाहिए।

private void makeJsonObjectRequest() { 
    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST, 
      "http://example.com/***.php", obj, new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        try { 
         response.getString("success"); 
         } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
       } 
      }); 

    AppController.getInstance().addToRequestQueue(jsonObjReq); 
} 
+0

देखें अगर यह आपकी मदद करता है http://stackoverflow.com/questions/20027995/android-volley-returning-results-twice-for -एक अनुरोध – Rohit5k2

+1

क्या आप पोस्ट कर सकते हैं कि आप अपना डेटा कैसे पोस्ट करते हैं ?? क्योंकि मैं 'JsonObjectRequest' का उपयोग कर डेटा पुनर्प्राप्त करने के लिए कोड देख सकता हूं। आप ((नई DefaultRetryPolicy 0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)) कि 'jsonObjReq.setRetryPolicy के लिए नीति पुन: प्रयास सेट कर सकते हैं;' – Piyush

+0

@PiyushGupta मैं इस सवाल का जवाब मिल गया है हमारा इस तरह अगर यह मुझे संतुष्ट से मैं अधिक पोस्ट करेंगे –

उत्तर

50

connection.setChunkedStreamingMode(0); उपयोग करने के लिए volley sending data twice बग से बचने के लिए कोई ज़रूरत नहीं। अपने वॉली पार्स में नई Response.ErrorListener() विधि पूरी होने के बाद नीचे दिए गए कोड

JsonObjectRequest jsonObjReq = new JsonObjectRequest(...); 
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
         0, 
         DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
         DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
+0

निम्नलिखित उदाहरण देखें https://developer.android.com/training/volley/simple.html –

+2

@ShashikalaChavan: 'AppRontroller.getInstance() से पहले' setRetryPolicy 'को कॉल करें। AddToRequestQueue (jsonObjReq); 'line –

+0

ठीक है, मैं जांच करूंगा और आपको जवाब देने के लिए धन्यवाद दें ............. –

6

उपयोग: आप वर्तमान अनुरोध के लिए नीति पुन: प्रयास सेट करना होगा। आशा है कि यह आपके लिए उपयोगी होगा। मुझे एक ही समस्या का सामना करना पड़ा और इसे उसी कोड से हल किया गया।

कोड:

jsObjRequest.setRetryPolicy(new DefaultRetryPolicy(
       30000, 
       DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
       DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
1

यह काम करेंगे

RetryPolicy mRetryPolicy = new DefaultRetryPolicy(
0, 
DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); 

request.setRetryPolicy(mRetryPolicy); 
संबंधित मुद्दे