AsyncTask类详解



AsyncTask是一个抽象类,
AsyncTask<InParams, progress, Result>
实现类里要有三个泛型参数
第一个是传入参数的类型,第二个是任务执行进度的值类型,Result是任务执行完
时的返回值

AsyncTask必须在执行完一个任务后才能执行下一个任务

只能执行一次,多次执行触发异常。

常用的一些方法
getStatus()获取AsyncTask的运行状态
//AsyncTask.Status.RUNNING
  //AsycTask.Status.FINISHED
  AsyncTask.Status.PENDING  还没有执行完毕

cancel(boolea) 暂停任务

isCancelled() 判断任务是否暂停


public class myAsyncTask extends AsyncTask<String, Integer, Integer> {

//必须重写的方法,在后台执行耗时操作,任务的主要实现方法
params是外界要启动这个任务时传进来的一个参数,是个可变长的数组 
@Override
 protected Integer doInBackground(String... params) {
  // TODO Auto-generated method stub
  return null;
 }
  在任务执行前执行,做一些初始化操所
 @Override
 protected void onPreExecute() {
  // TODO Auto-generated method stub
  super.onPreExecute();
 }
  任务完成后执行该方法,并将doInBackground的返回值传进来
 @Override
 protected void onPostExecute(Integer result) {
  // TODO Auto-generated method stub
  super.onPostExecute(result);
 }
  这里可以执行进度界面更新的操作,在doInBackground方法中调用publishProgress(values);将触发该方法
 @Override
 protected void onProgressUpdate(Integer... values) {
  // TODO Auto-generated method stub
  super.onProgressUpdate(values);
 }
 
}

AsyncTask是一个抽象类,
AsyncTask<InParams, progress, Result>
实现类里要有三个泛型参数
第一个是传入参数的类型,第二个是任务执行进度的值类型,Result是任务执行完
时的返回值

AsyncTask必须在执行完一个任务后才能执行下一个任务

只能执行一次,多次执行触发异常。

常用的一些方法
getStatus()获取AsyncTask的运行状态
//AsyncTask.Status.RUNNING
  //AsycTask.Status.FINISHED
  AsyncTask.Status.PENDING  还没有执行完毕

cancel(boolea) 暂停任务

isCancelled() 判断任务是否暂停


public class myAsyncTask extends AsyncTask<String, Integer, Integer> {

//必须重写的方法,在后台执行耗时操作,任务的主要实现方法
params是外界要启动这个任务时传进来的一个参数,是个可变长的数组 
@Override
 protected Integer doInBackground(String... params) {
  // TODO Auto-generated method stub
  return null;
 }
  在任务执行前执行,做一些初始化操所
 @Override
 protected void onPreExecute() {
  // TODO Auto-generated method stub
  super.onPreExecute();
 }
  任务完成后执行该方法,并将doInBackground的返回值传进来
 @Override
 protected void onPostExecute(Integer result) {
  // TODO Auto-generated method stub
  super.onPostExecute(result);
 }
  这里可以执行进度界面更新的操作,在doInBackground方法中调用publishProgress(values);将触发该方法
 @Override
 protected void onProgressUpdate(Integer... values) {
  // TODO Auto-generated method stub
  super.onProgressUpdate(values);
 }
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值