android-AsynTask

AsynTask

AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行, 这就有效地避免了使用Handler带来的麻烦。AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试

当应用中会有网络请求,并且需要把结果信息更新到UI上, 那么可以选择AsynTask.


下面举个简单实例,说明AsynTask 里面的每个方法的使用,和具体的调用过程;

package com.hualu.asyntaskexample;

import java.net.URL;

import android.os.AsyncTask;

public class DemoAsynTask extends AsyncTask<URL, Integer, String> {

	@Override
	protected String doInBackground(URL... params) {
		System.out.println(params[0].getPath()); //传来的URL
		publishProgress(1) ;
		return null;
	}
	
	@Override
	protected void onProgressUpdate(Integer... values) {
		super.onProgressUpdate(values);
		
	}
	
	@Override
	protected void onPostExecute(String result) {
		super.onPostExecute(result);
		
	}

}

详解:

 AsyncTask<URL, Integer, String>

泛型中的三个类型:

       第一个URL:是doInBackground()方法中的参数(可变参数)

      第二个Integer:是在调用publishProcess(int)时,参数传入到onProcessUpdate()里面

      第三个String:是doInBackground()方法返回值,这个返回值会当做参数传递给onPostExecute()方法


       doInBackground() 方法在上述三个方法中是第一个调用的,要想程序调用onProcessUpdate()方法,需要调用publishProcess()方法,doInBackground()返回后,onPostExecute()方法才会执行。


一般网络操作在doInBackground()方法中实现。


运行AsynTask:

new AsynTask().execute(new URL("http://blog.csdn.net/luhuajcdd/article/details/8791105")) ;



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值