消息机制--AsyncTask

来源:互联网 发布:node文档 编辑:程序博客网 时间:2024/06/03 08:07









package org.lxh.demo;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.widget.ProgressBar;import android.widget.TextView;public class MyAsyncTaskDemo extends Activity {private ProgressBar bar = null;// 进度条组件private TextView info = null;// 文本显示组件@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.main);// 调用布局管理器this.bar = (ProgressBar) super.findViewById(R.id.bar);// 取得组件this.info = (TextView) super.findViewById(R.id.info);// 取得组件ChildUpdate child = new ChildUpdate() ;// 子任务对象child.execute(100) ; // 为休眠时间}private class ChildUpdate extends AsyncTask<Integer, Integer, String> {@Overrideprotected void onPostExecute(String result) {// 任务执行完后执行MyAsyncTaskDemo.this.info.setText(result) ;// 设置文本}@Overrideprotected void onProgressUpdate(Integer... progress) {// 每次更新之后的数值MyAsyncTaskDemo.this.info.setText("当前进度是:"+ String.valueOf(progress[0]));// 更新文本信息}@Overrideprotected String doInBackground(Integer... params) {// 处理后台任务for (int x = 0; x < 100; x++) {// 进度条累加MyAsyncTaskDemo.this.bar.setProgress(x);// 设置进度this.publishProgress(x);// 传递每次更新的内容try {Thread.sleep(params[0]);// 延缓执行} catch (InterruptedException e) {e.printStackTrace();}}return "执行完毕。";// 返回执行结果}}}

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><ProgressBarandroid:id="@+id/bar" android:layout_width="fill_parent"android:layout_height="wrap_content"style="?android:attr/progressBarStyleHorizontal" /><TextViewandroid:id="@+id/info"android:layout_width="fill_parent"android:layout_height="wrap_content" /></LinearLayout>



0 0
原创粉丝点击