android学习笔记1: AsyncTask使用
2014-01-23 17:26
211 查看
AsyncTask用于异步更新界面,比Thread+handler的方式更方便,代码更简洁.
AsyncTask的三个主要方法 doInBackground(),onProgressUpdate(),onPostExecute(),
doInBackground()是abstract的,用于处理后台任务,必须实现,
onProgressUpdate()和onPostExecute()是protected的,负责将doInBackground的结果更新到前台,可以选择实现.
在主线程中new一个AsyncTask,调用execute()方法后主线程继续前进,AsyncTask在后台调用doInBackground(),并将结果通知给onPostExecute(),
onProgressUpdate()方法需要在doInbackground方法中主动调用publishProgress()来触发.
实现AsyncTask的必须注意三个主要方法的参数,保证一致,否则导致对应方法不执行.
public abstract class AsyncTask<Params, Progress, Result>
第一个是doInbackground()的,在调用execute()方法时赋值,
第二个是onProgressUpdate()的,在调用publishProgress时赋值,
第三个是onPostExecute()的,task自动调用并赋值.
例:
private class ScanTask extends AsyncTask<String, String, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
...
publishProgress(str);
...
}
@Override
protected void onProgressUpdate(String... values) {
...
}
@Override
protected void onPostExecute(List<String> strings) {
...
}
}
需要注意的是,同一主线程里new的同一AsyncTask都是串行执行的,执行完一个再执行下一个,这样应该是为了不在更新Ui时发生混乱.
AsyncTask的三个主要方法 doInBackground(),onProgressUpdate(),onPostExecute(),
doInBackground()是abstract的,用于处理后台任务,必须实现,
onProgressUpdate()和onPostExecute()是protected的,负责将doInBackground的结果更新到前台,可以选择实现.
在主线程中new一个AsyncTask,调用execute()方法后主线程继续前进,AsyncTask在后台调用doInBackground(),并将结果通知给onPostExecute(),
onProgressUpdate()方法需要在doInbackground方法中主动调用publishProgress()来触发.
实现AsyncTask的必须注意三个主要方法的参数,保证一致,否则导致对应方法不执行.
public abstract class AsyncTask<Params, Progress, Result>
第一个是doInbackground()的,在调用execute()方法时赋值,
第二个是onProgressUpdate()的,在调用publishProgress时赋值,
第三个是onPostExecute()的,task自动调用并赋值.
例:
private class ScanTask extends AsyncTask<String, String, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
...
publishProgress(str);
...
}
@Override
protected void onProgressUpdate(String... values) {
...
}
@Override
protected void onPostExecute(List<String> strings) {
...
}
}
需要注意的是,同一主线程里new的同一AsyncTask都是串行执行的,执行完一个再执行下一个,这样应该是为了不在更新Ui时发生混乱.
相关文章推荐
- android学习笔记---使用AsyncTask实现异步处理,内部使用线程加Handler
- 【Android学习笔记系列】AsyncTask的使用和介绍(获取网络图片与进度条实例)
- Android学习笔记:进度条ProgressBar的使用以及与AsyncTask的配合使用
- android学习笔记——AsyncTask异步消息处理机制简单介绍及使用
- Android学习笔记:超能RecyclerView组件使用总结
- [Android]异步任务AsyncTask使用解析
- 详解Android中AsyncTask的使用
- android多线程 异步请求 AsyncTask使用心得
- Android中AsyncTask的使用场景、使用时的注意事项以及如何关闭
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 详解Android中AsyncTask的使用
- AsyncTask使用详细说明
- Android中 AsyncTask的使用
- 详解Android中AsyncTask的使用
- AsyncTask的使用
- android中AsyncTask的使用
- 详解Android中AsyncTask的使用(简单易懂)
- Android笔记: AsyncTask 的使用
- Android学习笔记:滚动控件ListView的基本使用方法
- [Android]异步任务AsyncTask使用解析