AsyncTask

使用AsyncTask步骤

1.创建一个类,extents AsyncTask,并且实现其中的抽象方法

   

public class DownloadTast extends AsyncTask<String,Integer,Integer>{


    @Override
protected Integer doInBackground(String... params) {
        Log.w("test","doInBackground");
        return null;
    }

}

 

2.在主线程中创建异步任务对象,并开始执行任务

  

new DownloadTast().execute();

 

AsyncTask的说明

1、onPreExecute():这个方法是在任务开始前进行的,它由UI线程(主线程)调用,

即可以进行UI操作。在最后,我会给出Log的打印信息。

 

2、doInBackground(Params...):这个方法是onPreExecute()完成后,

立即在后台进行的,用以执行任务,并将Result传给onPostExecute(Result)

另外,在此期间,可以调用publishProgress(Progress...)

这个方法能够传递一些数据给onProgressUpdate(Progress...)

 

3、onProgressUpdate(Progress...):在publishProgress(Progress...)

被调用之后,此方法会由UI线程调用。所以利用publishProgress(Progress...)

onProgressUpdate(Progress...)就能够做出在加载或读取网络数据时的等待

或缓冲的UI效果。我在最后给出的效果图有类似的功能。

 

4、onPostExecute(Result):在doInBackground(Params...)完成后,

由UI线程调用,在这里处理Result

 

5. 第一个参数:传入doInBackground()方法的参数类型 

    第二个参数:传入onProgressUpdate()方法的参数类型 

    第三个参数:传入onPostExecute()方法的参数类型,

                也是doInBackground()方法返回的类型

     

使用AsyncTask步骤 1.创建一个类,extents AsyncTask,并且实现其中的抽象方法    
public class DownloadTast extends AsyncTask<String,Integer,Integer>{


    @Override
protected Integer doInBackground(String... params) {
        Log.w("test","doInBackground");
        return null;
    }

}
  2.在主线程中创建异步任务对象,并开始执行任务   
new DownloadTast().execute();
  AsyncTask的说明 1、onPreExecute():这个方法是在任务开始前进行的,它由UI线程(主线程)调用, 即可以进行UI操作。在最后,我会给出Log的打印信息。   2、doInBackground(Params...):这个方法是onPreExecute()完成后, 立即在后台进行的,用以执行任务,并将Result传给onPostExecute(Result) 另外,在此期间,可以调用publishProgress(Progress...) 这个方法能够传递一些数据给onProgressUpdate(Progress...)   3、onProgressUpdate(Progress...):在publishProgress(Progress...) 被调用之后,此方法会由UI线程调用。所以利用publishProgress(Progress...)

猜你喜欢

转载自542255641.iteye.com/blog/2395953