异步处理AsyncTask

本文详细解析了Android异步任务(AsyncTask)的执行流程,包括预执行、后台执行、进度更新和最终执行阶段。重点介绍了如何在后台线程中处理任务,并通过publishProgress方法更新UI组件的进度条,确保了程序的流畅性和用户体验。


http://blog.youkuaiyun.com/mylzc/article/details/6772129


package com.edu;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;

public class TestAsckActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TestAsck testAsck=new TestAsck();
        testAsck.execute("传入参数!");
    }
    class TestAsck extends AsyncTask<String, Integer, String>{

		@Override
		protected String doInBackground(String... params) {
			// TODO Auto-generated method stub
			System.out.print(params.length+"  "+params[0]);
			System.out.println(">>>>>>doInBackground");
			for (int i = 0; i < 5; i++) {
				publishProgress(i);//用于更新进度条的。这个值将会在 onProgressUpdate 中接受到!  在这里面不可以对界面上的控件进行控制

			}
			return "返回结果";
		}

		@Override
		protected void onPreExecute() {
			// TODO Auto-generated method stub
			System.out.println(">>>>>>onPreExecute");
			super.onPreExecute();
		}

		@Override
		protected void onPostExecute(String result) {
			// TODO Auto-generated method stub
			System.out.println(">>>>>>onPostExecute"+result);
			super.onPostExecute(result);
		}

		@Override
		protected void onProgressUpdate(Integer... values) {
			// TODO Auto-generated method stub
			super.onProgressUpdate(values);
			//System.out.print();
			System.out.println(">>>>>>onProgressUpdate"+values[0]);
		}
		
    	
    }
}


看结果和代码分析其执行的流程

doInBackground  不能对界面上的控件如  进度条进行操作 否者将会报错 只能在
onProgressUpdate更新


其中的传入参数 和结果


http://developer.android.com/reference/android/os/AsyncTask.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值