Android -- AsyncTask

时间:2014-05-09 09:31:39   收藏:0   阅读:390

在Android当中,提供了两种方式来解决线程直接的通信问题,一种是通过Handler的机制,还有一种就是今天要详细讲解的 AsyncTask 机制。

AsyncTask                                                                               

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.

怎么来理解AsyncTask呢?通俗一点来说,AsyncTask就相当于Android给我们提供了一个多线程编程的一个框架,其介于Thread和Handler之间,我们如果要定义一个AsyncTask,就需要定义一个类来继承AsyncTask这个抽象类,并实现其唯一的一个 doInBackgroud 抽象方法。

3个泛型参数:

AsyncTask <Params, Progress, Result>

如果都不指定的话,则都将其写成Void,例如:

AsyncTask <Void, Void, Void>

代码                                                                                           

bubuko.com,布布扣
public class yibu extends AsyncTask<Integer, Integer, String> {

    private int num = 0;
    private TextView text;
    public yibu(TextView textfrom) {
        // TODO 自动生成的构造函数存根
        this.text = textfrom;//传递进来一个TextView
    }
    
    @Override
    protected void onPostExecute(String result) {
        // TODO 自动生成的方法存根
        super.onPostExecute(result);
        text.setText("异步操作执行结束" + result);
    }

    @Override
    protected void onPreExecute() {
        // TODO 自动生成的方法存根
        super.onPreExecute();
        text.setText("开始执行异步操作");
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // TODO 自动生成的方法存根
        super.onProgressUpdate(values);
        int value = values[0];
        System.out.println(value);
    }

    @Override
    protected String doInBackground(Integer... param) {
        // TODO 自动生成的方法存根    
        for(;num<10;num++)
        {
            publishProgress(num);//调用onProgressUpdate()
        }
        return num + param[0].intValue() + "";//调用onPostExecute,值直接传进去
    }
}
bubuko.com,布布扣

源代码                                                                                        

代码:http://pan.baidu.com/s/1dD1Qx01

Second.zip

com.yuyidong.second.yibu.java

还有一个例子,

yibu.zip

 

 

转载请注明出处:http://www.cnblogs.com/yydcdut/p/3707960.html

Android -- AsyncTask,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!