Android: How to Make For Loop Continue Loop After AsyncTask is finish (onPostExecute) -
i have value more 1, planned make loop execute each value. problem loop looping/continue asynctask not finish yet.
asynctask class
public class server extends asynctask<jsonobject, void, void> { @override protected void doinbackground(jsonobject... params) { ......... } @override protected void onpostexecute(void result) { ......... } }
activity
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_a); for(int i=0; i<10; i++){ server myserver = new server(); myserver.execute(i); } }
as @cricket_007 commented, loop won't wait asynctask
asynchronous , hence loop continues without waiting asynctask
finish. i've understood purpose, need this.
you need define interface this.
public interface responselistener { void responsereceiver(); }
now modify asynctask
this
public class server extends asynctask<jsonobject, void, void> { public responselistener responselistener; @override protected void doinbackground(jsonobject... params) { // ......... } @override protected void onpostexecute(void result) { // ......... other code // here's callback function main activity. responselistener.responsereceiver(); } }
now activity need this.
public class youractivity extends activity implements httpresponselistener { public int count = 0; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_a); server myserver = new server(); myserver.responselistener = this; myserver.execute(i); } // callback method implementation @override public void responsereceiver() { // callback function , gets called when 1 asynctask finishes. // increase count here , keep track of how many times asynctask has been executed. // count++; // call next asynctask again if count haven't reach 10 if(count <= 10) { server myserver = new server(); myserver.responselistener = this; myserver.execute(i); } } }
hope helps.
wiki
Comments
Post a Comment