Android的两种异步子用

Android的两种异步调用1. Handler + Thread定义class MyHandler extends Handler {@Overridepublic void h

Android的两种异步调用
1. Handler + Thread
定义

    class MyHandler extends Handler {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);    //To change body of overridden methods use File | Settings | File Templates.            switch (msg.what) {                case PRO_ADD:                    progressBar.setProgress(count);                    break;            }        }    }}

调用
               Thread thread = new Thread(new Runnable() {                      @Override                      public void run() {                          try {                              for (int i = 0; i < max; i++) {                                  Message message = new Message();                                  Thread.sleep(50);                                  if (i > 100) {                                      count = 100;                                      message.what = PRO_ADD;                                      myHandler.sendMessage(message);                                  } else {                                      count = progressBar.getProgress()+2;                                      message.what = PRO_ADD;                                      myHandler.sendMessage(message);                                  }                                }                          } catch (InterruptedException e) {                              e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.                          }                      }                  });                  thread.start();  



2. AsyncTask,参考:http://www.cnblogs.com/jingd/archive/2012/03/10/2389648.html
异步处理程序 
    class AnsyTry extends AsyncTask<String, TextView, Double> {            TextView te = null;            public AnsyTry(TextView te) {              super();              this.te = te;          }            @Override          protected Double doInBackground(String... params) {              double dou = 0;              dou = 100;              searchFromWebService(te);  //处理事情的方法......            publishProgress(te);              return dou;          }            @Override          protected void onPostExecute(Double result) {              super.onPostExecute(result);          }            @Override          protected void onPreExecute() {              super.onPreExecute();          }            @Override          protected void onProgressUpdate(TextView... values) {              super.onProgressUpdate(values);          }        }  

调用:
                    AnsyTry anys = new AnsyTry(textView2);                      anys.execute();