SyncAdapter 不适用于这种情况。SyncAdapter
用于数据的后台同步,对用户不可见。
您的案例听起来非常适合AsyncTask。当您的网络任务发生在另一个线程中时,您可以使用它publishProgress()
来更新进度条。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");
}
}
通过像这样执行它来运行它:
new DownloadFilesTask().execute(url1, url2, url3);
这是另一个示例,带有教程(由 google 找到):
http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/