При отправке двух JsonRequest of Volley в Android из фрагмента одного действия я получаю сообщение об ошибке отмены очереди повторяющихся запросов - PullRequest
0 голосов
/ 24 марта 2019

Здесь, в этом коде, я пытаюсь отправить два json-запроса на залп из фрагмента одного действия.

Один раз он работает правильно, но во второй раз я получаю повторяющаяся ошибка отмены очереди запроса.

На самом деле в этом коде я извлекаю изображения и другую связанную с ними информацию из базы данных, используя первый запрос json, записанный в функции onCreateView.

Затем, нажав один изизображения, я перехожу к другой деятельности, где я получаю увеличенную версию выбранного изображения, в которую не входит одна кнопка камеры.

Когда я нажимаю кнопку камеры, камера моего устройства открывается, а затем при окончательном нажатии на кнопкуКамера устройства, я написал второй jsonRequest, который обновляет счетчик кликов этого конкретного изображения в базе данных.

Таким образом, при выполнении всех этих шагов изменения жизненного цикла моей активности происходят по onCreate-> onStart-> onResume-> onPause->onStrop-> onDestroy.

Затем я возвращаюсь к своему домашнему экрану с того места, где я выбрал изображение, поэтому мои действияЖизненный цикл ivity похож на onStart-> onResume, поэтому здесь, когда наступает onResume, я хочу показать обновленное количество кликов для того изображения, которое было выбрано ранее.

, чтобы оно давало пользователю представление, которое постоянно обновляется / обновляется.Поскольку onCreate вызывается только один раз (при запуске), после этого для получения обновленного значения я написал второй запрос json в OnResume.

 @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {



        if(categoryResults1.equals("All")){
            view= inflater.inflate(R.layout.fragment_frontcamera,container,false);
            initRecyclerView(view);
            initiateImages(view);**/**/This function is responsible for first Json request which gets all images and other information from database.****
        }
        else{
            view= inflater.inflate(R.layout.activity_catergory_recycler,container,false);
            initRecyclerView2(view,categoryResults1);
            initiateImages(view);**//This function is responsible for first Json request which gets all images and other information from database.**
        }

        return view;
    }

///////////////////////////////////////////////////////////////////////////
*******Second Json Request for update count in onResume function*********



 @Override
    public void onResume() {
        super.onResume();

        Log.d("Resume","OnResume Method is called");

        Log.d("categoryForFreq",categoryResults1);

        updateCountFunc();


    }



    public void updateCountFunc(){

        JSONObject jsonObject3= new JSONObject();
        JSONObject  jsonObject4=new JSONObject();

        try{

            jsonObject3.put("category",categoryResults1);
            jsonObject3.put("selectedFrontFrag","front");
            jsonObject4.put("Json",jsonObject3);


        }
        catch(JSONException e){

            e.printStackTrace();

        }

        JsonObjectRequest jsonObjectRequest2=new JsonObjectRequest(Request.Method.POST, urlJson2, jsonObject4, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {


                try{
                    JSONArray jsonArraySolo=response.getJSONArray("imagesSolo");

                    Log.d("kyameintrykebahar?","no");

                    JSONObject product=null;

                    for(int i=0;i<jsonArraySolo.length();i++){

                        product=jsonArraySolo.getJSONObject(i);

                        String fullImageUrl=product.optString("Fullimage");
                        String freqFromDB=product.optString("FrequencyClicks");

                        if(freqFromDB!=null){
                            Log.d("soloImageUrlllll",fullImageUrl);
                            Log.d("soloImageFreqqqq",freqFromDB);

                        }
                        else{

                        }

                        hashMapClicks.put(fullImageUrl,Integer.parseInt(freqFromDB));

                    }
                }
                catch (Exception e){


                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                Log.d("VolleyErrorFreq",error.toString());
                error.printStackTrace();

            }
        });

        Volley.newRequestQueue(getContext()).add(jsonObjectRequest2);

        if(categoryResults1.equals("All")){


            initRecyclerView(view);

        }
        else{

            initRecyclerView2(view,categoryResults1);

        }
    }

...