http://blog.youkuaiyun.com/mylzc/article/details/6772129
package com.edu;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
public class TestAsckActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TestAsck testAsck=new TestAsck();
testAsck.execute("传入参数!");
}
class TestAsck extends AsyncTask<String, Integer, String>{
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
System.out.print(params.length+" "+params[0]);
System.out.println(">>>>>>doInBackground");
for (int i = 0; i < 5; i++) {
publishProgress(i);//用于更新进度条的。这个值将会在 onProgressUpdate 中接受到! 在这里面不可以对界面上的控件进行控制
}
return "返回结果";
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
System.out.println(">>>>>>onPreExecute");
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
System.out.println(">>>>>>onPostExecute"+result);
super.onPostExecute(result);
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
//System.out.print();
System.out.println(">>>>>>onProgressUpdate"+values[0]);
}
}
}
看结果和代码分析其执行的流程
在
doInBackground 不能对界面上的控件如 进度条进行操作 否者将会报错 只能在onProgressUpdate更新
其中的传入参数 和结果
http://developer.android.com/reference/android/os/AsyncTask.html