android-AsyncTask
2016-02-21 11:13
351 查看
AsyncTask是一种异步处理工具,在执行一些耗时操作如下载或请求接口数据等都会想到它。对于这个抽象类,
我们直接写个子类或内部类继承它,还要给定它的三个泛型:
Params:执行doInBackground要传递的参数
Progress:当需要显示进度时进度的单位类型
Result:完成任务返回结果类型
public class MyAsyncTask extends AsyncTask<Void, Integer, String>{
@Override
protected void onPreExecute() {
//doInBackground之前调用,常用于界面的初始化
}
@Override
protected String doInBackground(Void... params) {
//开启子线程运行,多是耗时操作,无法直接更新ui
publishProgress(50);//反馈当前操作进度,会去执行onProgressUpdate方法
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
//更新进度
}
@Override
protected void onPostExecute(String result) {
//doInBackground的return后执行,参数即为doInBackground返回值,该方法在主线程中进行,可对
//UI进行操作
}
}
启动这个任务只要new MyAsyncTask().execute()方法就可以了。
我们直接写个子类或内部类继承它,还要给定它的三个泛型:
Params:执行doInBackground要传递的参数
Progress:当需要显示进度时进度的单位类型
Result:完成任务返回结果类型
public class MyAsyncTask extends AsyncTask<Void, Integer, String>{
@Override
protected void onPreExecute() {
//doInBackground之前调用,常用于界面的初始化
}
@Override
protected String doInBackground(Void... params) {
//开启子线程运行,多是耗时操作,无法直接更新ui
publishProgress(50);//反馈当前操作进度,会去执行onProgressUpdate方法
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
//更新进度
}
@Override
protected void onPostExecute(String result) {
//doInBackground的return后执行,参数即为doInBackground返回值,该方法在主线程中进行,可对
//UI进行操作
}
}
启动这个任务只要new MyAsyncTask().execute()方法就可以了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories