当您开发Android应用程序时,如果您想从Web服务器异步下载数据,您如何解决?

时间:2012-10-11 08:47:02

标签: android web-services asynchronous

现在我正在开发一个Android应用程序,我想用WebService从Web服务器异步下载数据,我是如何解决它的?

2 个答案:

答案 0 :(得分:4)

使用AsyncTask

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");
 }

}

答案 1 :(得分:1)

有几种方法可以做到这一点。其中最受欢迎的是使用Android API提供的AsyncTask类。

您可以阅读有关AsyncTask HERE

的更多信息

官方开发者指南中还有一整页专门讨论主题和流程,该指南可用HERE