Android AsyncTask 简单用法

2016-01-23  本文已影响0人  汤姆叔叔的小屋

简介

AsyncTask 是一个轻量级的异步处理类。使用是需继承自该类。可以方便的执行异步任务并且在将进度显示在UI上。

注意事项

AsyncTask 执行的4个阶段

onPreExecute() 在主线程(UI线程)调用,用于开始任务前的初始化工作。例如显示一个进度条。

doInBackground(Params...) 后台线程调用,onPreExecute() 执行完之后立即执行。用于执行耗时较长的操作。并且提供publishProgress(Progress...)方法用于显示进度信息。

onProgressUpdate (Progress...)在主线程(UI线程)调用,用于响应publishProgress(Progress...)方法。

onPostExecute(Result) 在主线程调用,doInBackground(Params...)方法执行完后立即调用。Result是doInBackground(Params...)方法的返回值。

AsyncTask使用方法

参数解释

这三个参数会在类继承时被指定,参数都使用泛型构造。

代码示例(来自Android Developer)

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {

        protected Long doInBackground(URL... urls) {
        int count = urls.length; 
        long totalSize = 0;
        for (int i = 0; i < count; i++) {
             totalSize += Downloader.downloadFile(urls[i]);
             publishProgress((int) ((i / (float) count) * 100));
             // Escape early if cancel() is called
             if (isCancelled()) break;
         }
         return totalSize;
       }
       protected void onProgressUpdate(Integer... progress) {
             setProgressPercent(progress[0]);                                                
       }

     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }
new DownloadFilesTask().execute(url1, url2, url3);

更多用法AsyncTask AndroidDeveloper

上一篇 下一篇

猜你喜欢

热点阅读