android - Stop main thread and show progress dialog -
hello guys having async task points online , depending on these points must decide popup window should show on main thread . example if points less should show "buy points" screen else show "buy item" screen .i want show progressdialog until points loaded
if main thread stops until points loaded progress dialog won't show
string str_result= new jsontask().execute("my url" + uid).get();
if progress dialog shows points loaded wrong
new jsontask().execute("my url" + uid);
my async taks
class jsontask extends asynctask<string, string, string> { progressdialog pdia; @override protected void onpreexecute() { super.onpreexecute(); pdia = new progressdialog(popupactivity.this); pdia.setmessage("loading..."); pdia.show(); } @override protected string doinbackground(string... params) { // points here return null; } @override protected void onpostexecute(string result) { super.onpostexecute(result); system.out.println(result); setrewardpoints(integer.parseint(result)); pdia.dismiss(); } }
how can show progressdialog , stop main thread executing until async task complete?
you should create new interface
contains callback method method call in postexecute
method giving parameter number of points returned
public interface jsontaskcallback{ public void pointsprocessing(int point);}
now should create new property interface
in jsontask
class , add new constructor has parameter jsontaskcallback
variable.
jsontaskcallback taskcallback; public jsontask(jsontaskcallback taskcallback){ this.taskcallback = taskcallback; }
after call jsontaskcallback$pointsprecessing
method in postexecute
method, after use statement:
new jsontask(new jsontaskcallback(){ @override public void pointsprocessing(int point){ // proccess result , show convenient popup window } }).execute("my url" + uid);
Comments
Post a Comment