Android 的AsyncTask的执行步骤


主线程中:

ProgressBarAsyncTask asyncTask = new ProgressBarAsyncTask(textView,progressBar);

asyncTask.execute(1000);

0.importandroid.os.AsyncTask;
  1. importandroid.widget.ProgressBar;
  2. importandroid.widget.TextView;
  3. //生成该类的对象,并调用其execute方法之后
  4. //首先执行的的onPreExecute方法
  5. //其次是执行doInBackground方法
  6. publicclassProgressBarAsyncTaskextendsAsyncTask<Integer,Integer,String>{
  7. privateTextViewtv;
  8. privateProgressBarpb;//接收2个参数
  9. publicProgressBarAsyncTask(TextViewtv,ProgressBarpb){
  10. this.tv=tv;
  11. this.pb=pb;
  12. }
  13. @Override//异步直行的后台方法execute()先执行
  14. protectedStringdoInBackground(Integer...params){//继承的第一个参数类型
  15. inti;
  16. for(i=0;i<=100;i+=10){
  17. try{
  18. Thread.sleep(1000);
  19. publishProgress(i);//该方法会调用onProgressUpdate()以更新UI
  20. }catch(InterruptedExceptione){
  21. e.printStackTrace();
  22. }
  23. }
  24. returni+params[0].intValue()+"";
  25. }
  26. @Override//该方法运行在UI线程中..
  27. protectedvoidonPreExecute(){
  28. tv.setText("开始在UI线程中执行异步操作..");
  29. }
  30. @Override//最后一个参数String类型是doInBackground()的返回值和onPostExecute方法的参数类型,它在doInBackground运行完后再运行,并且运行在UI线程
  31. protectedvoidonPostExecute(Stringresult){
  32. tv.setText("执行异步操作结束.."+result);//result就是doInBackground()的返回值
  33. }
  34. @Override
  35. protectedvoidonProgressUpdate(Integer...values){//继承中的第2个参数的类型
  36. intvalue=values[0];
  37. pb.setSecondaryProgress(value);
  38. }
  39. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值