main.xml
用来模拟网络操作java
public class NetOperate { static public void operate(int sec){
try {
//当前线充休眠
Thread.sleep(sec*1000);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
activity
public class ProgressAsyncTask extends AsyncTask{ private TextView textView;
private ProgressBar progressBar;
public ProgressAsyncTask(TextView textView, ProgressBar progressBar) {
this.textView = textView;
this.progressBar = progressBar;
}
//开始执行异步操作时,执行次方法.
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
System.out.println(textView);
textView.setText("异步操作开始");
}
//异步执行的
@Override
protected String doInBackground(Integer... params) {
// TODO Auto-generated method stub
int i=0;
for (i=10;
i<=100;
i+=10) {
//休眠
NetOperate.operate(1);
//发布一个更新,调用这个方法的同时 执行 onProgressUpdate
publishProgress(i);
}
return i+params[0].intValue()+"";
} //异步操作执行完成后执行该法方法,一般用来返回结果
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
textView.setText("异步操作结束"+result);
}
//在doInBackground方法中每调用 publishProgress()方法是会自动调用onProgressUpdate()方法
//在ui线程中执行
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
progressBar.setProgress(values[0]);
}
结果
【android学习——AsyncTast 异步操作和 ProgressBar】mail
推荐阅读
- Android修改系统的默认日期(Spreadturm)
- ObjectAnimator的使用
- Android学习|Android Studio快捷键提高工作效率的奇技
- LinearLayout中动态添加Fragment不能填充整个Activity的问题
- android学习|TouchDelegate的用法
- Java学习|Android中的位运算
- android设置launcher app
- Android学习|android 动画总结
- Android学习|【Android-动画】属性动画基本介绍及使用方式