如何在Android中实现ASyncTask

如何在Android中实现ASyncTask,第1张

概述任何人都可以告诉我如何使用ASyncTask更新UI并举例说明吗? 我从两个webservices获得价值.从两个webservices我得到两个arraylist on post方法的值不会返回值它将循环舍入.如何从onPostExecuteMethod返回? 这是我的异步类: public class HomeTask extends AsyncTask<Void,Void,Bundle> 任何人都可以告诉我如何使用ASyncTask更新UI并举例说明吗?

我从两个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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1128267.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存