刚刚看完老罗的视频教程:http://edu.eoe.cn/course/view/cid/128.html,顺便做下笔记。
异步任务AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用。
AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法。注意继承时需要设定三个泛型Params,Progress和Result的类型,如网络获取图片 AsyncTask<String,Inetger,Bitmap>:
- Params是指调用execute()方法时传入的参数类型和doInBackgound()的参数类型,这里我们是网络图片的URL,
- Progress是指更新进度时传递的参数类型,即publishProgress()和onProgressUpdate()的参数类型,可以是int,这里我们为void,
- Result是指doInBackground()的返回值类型,这里我们设置为Bitmap。
上面的说明涉及到几个方法:
- doInBackgound() 这个方法是继承AsyncTask必须要实现的,运行于后台,耗时的操作可以在这里做
- publishProgress() 更新进度,给onProgressUpdate()传递进度参数
- onProgressUpdate() 在publishProgress()调用完被调用,更新进度
比如,我们要从网络获取一个大数据,同时需要进度条显示,使用异步任务是非常合适的。