学习 http://www.imooc.com/learn/377 笔记
异步任务:
由于Android单线程模型,只有主线程即UI线程可以对UI进行操作,然而一些耗时任务必须放在非主线程中进行。
AsyncTask是一个Android封装好的组件用于进行异步任务处理。
用处:在子线程中更新UI,封装简化异步操作
一个典型的AsyncTask使用:
public class MyAsyncTask extends AsyncTask<Void,Void,Void> {
/**第二执行,执行真正的后台耗时操作
* @param params
* @return
*/
@Override
protected Void doInBackground(Void... params) {
Log.d("Tony","doInBackground");
return null;
}
/**
* 首先执行,完成准备工作
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.d("Tony", "onPreExecute");
}
/**
* 第三执行,用于展示处理的结果
* @param aVoid
*/
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Log.d("Tony", "onPostExecute");
}
/**
* 单独调用才能执行
* @param values
*/
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
Log.d("Tony", "onProgressUpdate");
}
}
具体介绍:
AsyncTask<Params,