Android 异步处理工具类(AsyncTask)详解编程语言

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

.java代码如下:

import android.app.Activity;   
import android.app.AlertDialog;   
import android.app.Dialog;   
import android.content.DialogInterface;   
import android.os.AsyncTask;   
import android.os.Bundle;   
import android.view.View;   
import android.view.View.OnClickListener;   
import android.view.View.OnFocusChangeListener;   
import android.widget.Button;   
import android.widget.EditText;   
import android.widget.ProgressBar;   
import android.widget.TextView;   
   
public class Hello extends Activity {   
    private ProgressBar bar = null;   
    private TextView info = null;   
   
    public 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> {   
//覆写如下方法   
        @Override   
        protected String doInBackground(Integer... params) {//处理后台任务   
            for (int x = 0; x < 100; x++) {   
                Hello.this.bar.setProgress(x);//进度条设置   
                this.publishProgress(x);//传递每次更新内容   
                try {   
                    Thread.sleep(params[0]);   
                } catch (InterruptedException e) {   
                    e.printStackTrace();   
                }   
   
            }   
            return "执行完毕!";   
        }   
   
        @Override   
        protected void onPostExecute(String result) {//任务执行完后执行   
            Hello.this.info.setText(result);   
        }   
   
        @Override   
        protected void onProgressUpdate(Integer... progress) {//每次更新后的数值   
            Hello.this.info.setText("当前进度为:" + String.valueOf(progress[0]));   
        }   
   
    }   
}  

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/11056.html

(0)
上一篇 2021年7月19日 10:39
下一篇 2021年7月19日 10:39

相关推荐

发表回复

登录后才能评论