android学习——AsyncTast 异步操作和 ProgressBar



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

    推荐阅读