Здесь, в этом коде, я пытаюсь отправить два 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);
}
}