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();
