
我从两个webservices获得价值.从两个webservices我得到两个arrayList on post方法的值不会返回值它将循环舍入.如何从onPostExecuteMethod返回?
这是我的异步类:
public class HoMetask extends AsyncTask<VoID,VoID,Bundle> { private Context ctx; public HoMetask(Context context) { ctx = context; } @OverrIDe protected voID onPreExecute() { //super.onPreExecute(); //setContentVIEw(R.layout.splash); dlg = new ProgressDialog(getDialogContext()); dlg.setMessage("Loading...."); dlg.show(); //setContentVIEw(R.layout.splash); } @OverrIDe protected Bundle doInBackground(VoID... params) { Bundle b=new Bundle(); // Todo auto-generated method stub try { WebService tableservice=new WebService(); tableservicevalue=tableservice.calltableServer(SOAP_ACTION,"",strUsername,strPassWord,questGroupID,URL); tableservicevalue=decodeXMLData(tableservicevalue); DomtableParser parser=new DomtableParser(); parser.settableservicevalue(tableservicevalue); parsedValue=parser.parseXmlfile(tableservicevalue); Log.d("1234%%%%$$$$$$$parsed value$$$$$",parsedValue.toString()); WebService service=new WebService(); webservicevalue=service.callHomeServer(SOAP_ACTION,URL); webservicevalue=decodeXMLData(webservicevalue); ArticleParser articleParser=new ArticleParser(); articleParsedValue=articleParser.parseXmlArticle(webservicevalue); //b.putStringArrayList("articleParsedValue",articleParsedValue); Log.d("(((((((parsed value is",parsedValue.toString()); b.putStringArrayList("parsedValue",parsedValue); b.putStringArrayList("articleParsedValue",articleParsedValue); Log.d("(((((((parsed value is",articleParsedValue.toString()); } catch (Exception e) { // Todo: handle exception e.printstacktrace(); } return b; } @OverrIDe protected voID onPostExecute(Bundle b) { Log.d("vijay checking","checking&&&&"); Log.d("****","*********"); Log.d("calling","handler"); Log.d("****","*********"); parsedValue1=b.getStringArrayList("parsedValue"); articleParsedValue1=b.getStringArrayList("articleParsedValue"); } 更新用户界面
new HoMetask(HomeActivity2.this).execute(null); for(int i=0;i<parsedValue1.size();i++){ DomParsertableDataSet dataSet=(DomParsertableDataSet)parsedValue1.get(i); if(i==0) { Log.d("&&&&&&index name is",dataSet.getIndexname()); Log.d("&&&&&&index name is",dataSet.getLastValue()); Log.d("&&&&&&index name is",dataSet.getChangePercentage() ); txtindex0.setText(dataSet.getIndexname()); txtlast0.setText(dataSet.getLastValue()); txtchange0.setText(dataSet.getChangePercentage()); } if(i==1) { Log.d("&&&&&&index name is",dataSet.getChangePercentage() ); txtindex1.setText(dataSet.getIndexname()); txtlast1.setText(dataSet.getLastValue()); txtchange1.setText(dataSet.getChangePercentage()); } if(i==2) { Log.d("&&&&&&index name is",dataSet.getIndexname()); Log.d("&&&&&&index name is",dataSet.getLastValue()); Log.d("&&&&&&index name is",dataSet.getChangePercentage() ); txtindex2.setText(dataSet.getIndexname()); txtlast2.setText(dataSet.getLastValue()); txtchange2.setText(dataSet.getChangePercentage()); } if(i==3) { Log.d("&&&&&&index name is",dataSet.getChangePercentage() ); txtindex3.setText(dataSet.getIndexname()); txtlast3.setText(dataSet.getLastValue()); txtchange3.setText(dataSet.getChangePercentage()); } } // for(int i=0;i<articleParsedValue1.size();i++) { System.out.println("for loop checking i is"+i); ArticleDataSet articleDataset=(ArticleDataSet)articleParsedValue1.get(i); System.out.println("articleDataset.getArticle_@R_502_5979@()"+articleDataset.getArticle_@R_502_5979@()); HashMap<String,String> mapValue=new HashMap<String,String>(); WebVIEw webvIEwcontent=new WebVIEw(HomeActivity2.this); if(articleDataset.getArticle_summary().length()>75) { summary=articleDataset.getArticle_summary().substring(0,75)+"..."; } else { summary=articleDataset.getArticle_summary(); } String HTML ="<HTML><body><div><label> <Font face=\"verdana\" color=\"#C1002B\" size=\"4\"><b>"+articleDataset.getArticle_@R_502_5979@()+"</b> </Font> </label>"+ "<label> <Font color=\"#000000\" size=\"2\" face=\"verdana\">"+"|"+"</Font></label> "+"<label> <Font color=\"#AAAAAA\" face=\"verdana\" size=\"2\">"+articleDataset.getArticle_date()+" </Font></label></div>"; HTML=HTML+"<div><label> <Font color=\"#000000\" face=\"verdana\" size=\"2\">"+summary+" </Font></label></div></body></HTML>" ; webvIEwcontent.getSettings().setJavaScriptEnabled(true); webvIEwcontent.clearCache(true); final Activity activity = HomeActivity2.this; webvIEwcontent.loadData(HTML,"text/HTML","utf-8"); if(i==articleParsedValue1.size()-1) { webvIEwcontent.setWebVIEwClIEnt(new WebVIEwClIEnt() { public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) { vIEw.loadUrl(url); return true; } public voID onPageFinished(WebVIEw vIEw,String url) { // setContentVIEw(R.layout.home); if (dlg.isShowing()) { dlg.dismiss(); dlg = null; } splash.setVisibility(VIEw.GONE); // setContentVIEw(repl); } }); } mainlinear4.addVIEw(webvIEwcontent); //webvIEwcontent.setontouchListener(HomeActivity2.this); }}解决方法 List<String> data; // declare here so that we can use it in onPostExecute().public class YourActivity extends Activity {public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); starttask();}private voID starttask() { new fileAsync().execute("start"); Toast toast = Toast.makeText(yourActivity.this," start:",7);toast.show(); }class fileAsync extends AsyncTask<String,String,String> { @OverrIDe protected voID onPreExecute() { super.onPreExecute(); m_ProgressDialog = ProgressDialog.show(yourActivity.this,"Loading ...",true); } @OverrIDe protected String doInBackground(String... aurl) { // These methods are calling data from web service made // in sperate class but you can do this here as well. TempDAO tempDAO = new TempDAOImpl(); data = tempDAO.getDataList(arg1,arg2); return null; } protected voID onProgressUpdate(String... progress) { Log.d("ANDRO_ASYNC",progress[0]); } @OverrIDe protected voID onPostExecute(String unused) { TextVIEw textData= new TextVIEw(YourActivity.this); textData.setText(data.get(1)); textData.setTextcolor(color.WHITE); textData.setGravity(Gravity.CENTER); setContentVIEw(textData); m_ProgressDialog.dismiss(); } } 总结 以上是内存溢出为你收集整理的如何在Android中实现ASyncTask全部内容,希望文章能够帮你解决如何在Android中实现ASyncTask所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)