安卓中有很多工作是不能在主线程上进行的,例如发起网络请求,下载等等。这些耗时操作都必须在子线程中去完成,或者可以使用接下来要说的AsyncTask。
AsyncTask是一个抽象类,所以要使用它就必须建立一个类去继承它
public class A extends AsyncTask<Params, Progress, Result>
三种泛型参数分别指,启动任务所传入的参数,后台任务执行的进度,后台计算结果的类型用于返回
AsyncTask中有下面四个经常需要重写的方法:
1.onPreExecute()
在后台任务开始前执行,用于进行一些界面的初始化,例如显示一个进度条
2.doInBackground(Params...params)
所有的耗时操作在此完成
3.onProgressUpdate(Proress...values)
更新进度信息到UI组件中
4.onPostExecute(Result result)
利用返回的结果数据进行一些UI操作,例如关闭进度条对话框
5.execute(Params...params)
执行一个异步任务,需要在主线程中调用
详细的转自http://blog.csdn.net/liuhe688/article/details/6532519