异步处理工具类:AsyncTask

2140阅读 0评论2015-11-26 luozhiyong131
分类:Android平台

在Android 1.5之后专门提供了一个android.os.AsyncTask(直译为非同步任务)类,通过此类完成非阻塞的操作类,其功能与Handler类似,可以在后台进行操作之后更新主线程的UI,但其使用的方式要比Handler容易许多。

点击(此处)折叠或打开

  1. public class MyAsyncTaskDemo extends Activity {
  2.     private ProgressBar bar = null;            // 进度条组件
  3.     private TextView info = null;        // 文本显示组件
  4.     @Override
  5.     public void onCreate(Bundle savedInstanceState) {
  6.         super.onCreate(savedInstanceState);
  7.         super.setContentView(R.layout.main);        // 调用布局管理器
  8.         this.bar = (ProgressBar) super.findViewById(R.id.bar);    // 取得组件
  9.         this.info = (TextView) super.findViewById(R.id.info);    // 取得组件
  10.         ChildUpdate child = new ChildUpdate() ;        // 子任务对象
  11.         child.execute(100) ;             // 为休眠时间
  12.     }
  13.     private class ChildUpdate extends AsyncTask<Integer, Integer, String> {
  14.         @Override
  15.         protected void onPostExecute(String result) {        // 任务执行完后执行
  16.             MyAsyncTaskDemo.this.info.setText(result) ;    // 设置文本
  17.         }
  18.         @Override
  19.         protected void onProgressUpdate(Integer... progress) {    // 每次更新之后的数值
  20.             MyAsyncTaskDemo.this.info.setText("当前进度是:"
  21.                     + String.valueOf(progress[0]));// 更新文本信息
  22.         }
  23.         @Override
  24.         protected String doInBackground(Integer... params) {    // 处理后台任务
  25.             for (int x = 0; x < 100; x++) {        // 进度条累加
  26.                 MyAsyncTaskDemo.this.bar.setProgress(x);    // 设置进度
  27.                 this.publishProgress(x);        // 传递每次更新的内容
  28.                 try {
  29.                     Thread.sleep(params[0]);    // 延缓执行
  30.                 } catch (InterruptedException e) {
  31.                     e.printStackTrace();
  32.                 }
  33.             }
  34.             return "执行完毕。";        // 返回执行结果        }
  35.     }}

030905_消息机制.ppt
上一篇:ActivityGroup
下一篇:Service