java - Cannot pass data from asyncTask to my activity -
in searchactivity: declared background worker class connect remote mysql database , data
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_search); backgroundworker worker = new backgroundworker(searchactivity.this); worker.execute("searchfirst"); ////////// message empty below toast.maketext(searchactivity.this,getintent().getextras().getstring("searchresult"),toast.length_short).show(); } in backgroundworker.class, backgroundworker class did data fails pass activity
protected void onpostexecute(wrapper w) { else if(w.result.contains("searchfirst successfully!")){ ////////// message can showed correctly here toast.maketext(context,w.result.tostring(),toast.length_short).show(); intent colleges = new intent(context,searchactivity.class); colleges.putextra("searchresult", w.result); } } also found out if put data intent , start activity immedicately calling startactivity(intent) in onpostexecute(), data can passed intent, however, if did not start activity, data lost?
you can add lines:
intent intent = new intent("myaction"); intent.putextra("searchresult", w.result); sendbroadcast(intent); then register broadcast reciever in activity:
registerreceiver(new broadcastreceiver() { @override public void onreceive(context context, intent intent) { object result = intent.getextras().get("searchresult"); } }, new intentfilter("myaction")); besides, can define listener interface , pass async task, call listener's method in onpostexecute() method. there no need calling intent way.
Comments
Post a Comment