How to cancel volly request in android? -
i have activity contain listview when user scrolldown request sent server more data request sent parameter count=5(it static) , last=5 , again on scroll down last becomes 10 , want when server response "no item" want cancel volley requeston listview scroll down.how can that
code listview scroll down;
@override public void onscrollstatechanged(abslistview view, int scrollstate) { if (scrollstate == abslistview.onscrolllistener.scroll_state_idle && bbottomofview) { log.i("listview", "scrolling stopped..."); if (networkutil.isconnected(getactivity())) { m_n_defaultrecordcount = 5;// increment of record count 5 on next load data m_n_deafalutlastcount = m_n_deafalutlastcount + 5;// same here.....as above sz_recordcount = string.valueof(m_n_defaultrecordcount);// convert int value string sz_lastcount = string.valueof(m_n_deafalutlastcount);// convert int value string ///// log.e(tag, "last count::" + sz_lastcount); log.e(tag, "record count::" + sz_recordcount); loadmoredata(); } else { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "please check internet connection !", getactivity()); m_listview.removefooterview(mfooter); } } }
and code load more data
public void loadmoredata() { try { string json; // 3. build jsonobject final jsonobject jsonobject = new jsonobject();// making object of jsons. jsonobject.put("agentcode", m_szmobilenumber);// put mobile number jsonobject.put("pin", m_szencryptedpassword);// put password jsonobject.put("recordcount", sz_recordcount);// put record count jsonobject.put("lastcountvalue", sz_lastcount);// put last count log.d("capplist:", sz_recordcount); log.d("capplist:", sz_lastcount); // 4. convert jsonobject json string json = jsonobject.tostring();// convert json object string log.i(tag, "server request:-" + json); requestqueue = volley.newrequestqueue(getactivity()); final string m_deallistingurl = "http://202.131.144.1:8080/json/metallica/getdeallistinjson"; jsonobjectrequest = new jsonobjectrequest(request.method.post, m_deallistingurl, jsonobject, new response.listener<jsonobject>() { @override public void onresponse(jsonobject response) { log.i(tag, "server response:-" + response); try { int nresultcodefromserver = integer.parseint(response.getstring("resultcode")); if (nresultcodefromserver == m_transaction_successful) { jsonarray posts = response.optjsonarray("deallist");// getting deal list (int = 0; < posts.length(); i++) { jsonobject post = posts.getjsonobject(i);// getting deal @ position @ item = new cdealappdatastorage();// object create of dealappdatastorage item.setm_szheadertext(post.getstring("dealname"));//getting deal name item.setm_szsubheadertext(post.getstring("dealcode"));// getting deal code item.setm_szdealvalue(post.getstring("dealvalue")); if (!s_odataset.contains(item)) { s_odataset.add(item); } } m_oadapter.notifydatasetchanged(); } if (nresultcodefromserver == m_kconnection_lost) {//server based conditions csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "connection lost !", getactivity()); } else if (nresultcodefromserver == m_kdeal_not_found) {// serevr based conditions ..... csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "no more deals available", getactivity()); if (m_listview.getfooterviewscount() != 0) { m_listview.removefooterview(mfooter); } } else if (nresultcodefromserver == m_ktechnical_failure) { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "technical failure", getactivity()); } else if (nresultcodefromserver == m_kalready_avail_benefit) { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "you have avail benefit of deal", getactivity()); } else if (nresultcodefromserver == m_ktimed_out) { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "timed out", getactivity()); } } catch (jsonexception e) { e.printstacktrace(); } } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { system.out.println("error:-" + error); if (error instanceof timeouterror) { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "connection lost ! please try again", getactivity()); } else if (error instanceof networkerror) { csnackbar.getinstance().showsnackbarerror(m_main.findviewbyid(r.id.mainlayout), "no internet connection", getactivity()); } } }); requestqueue.add(jsonobjectrequest); } catch (jsonexception e) { e.printstacktrace(); } }
you can cancel request below
you have add tag every request can cancel request particular tag.
public static final string tag = "mytag"; stringrequest stringrequest; // assume exists. requestqueue mrequestqueue; // assume exists. // set tag on request. stringrequest.settag(tag); // add request requestqueue. mrequestqueue.add(stringrequest);
cancel
mrequestqueue.cancelall(tag);
Comments
Post a Comment