execute()向doInBackground()传递。//第1个泛型参数
  doInBackground()的返回值会传递给onPostExecute()。//第3个泛型参数

  publishProgress()向progressUpdate()传递。//第2个泛型参数

在实例化异步的时候,只需要调用execute(Object... params)方法,就会自动调用doInBackground()并把参数传入

 
  1. class MyAsyncTask extends AsyncTask<String, TextView, Double>{

  2. private TextView mTv;

  3. public MyAsyncTask(TextView tv){

  4. this.mTv=tv;

  5.    }

  6. @Override

  7. protected Double doInString... params) { < /span>

  8.        System.out.println("doInBackground()");

  9. double dou=0;

  10. if (params[0].equals("wei")) {

  11.            dou=100;

  12.        }

  13.        publishProgress(mTv);

  14. return dou;

  15.    }

  16. @Override

  17. protectedvoid onPreExecute() {

  18.        System.out.println("onPreExecute()");

  19. super.onPreExecute();

  20.    }

  21. @Override

  22. protectedvoid onPostExecute(Double result) {

  23.        System.out.println("onPostExecute()");

  24. super.onPostExecute(result);

  25.    }

  26. @Override

  27. protectedvoid onProgressUpdate(TextView... values) {

  28.        System.out.println("onProgressUpdate()");

  29.        values[0].setText("bing");

  30. super.onProgressUpdate(values);

  31.    }

  32. }

调用

 
  1. mMyAsyncTask=new MyAsyncTask(tv);

  2. mMyAsyncTask.execute("wei");