我想上传一些文件。我在for循环中使用以下源代码:
Thread uploadThread = new Thread() {
@Override
public void run() {
uploadFile(sourcePath, destPath);
}
};
uploadThread.start();
这很好用。在哪里以及如何检查线程何时完成?我需要在for循环中暂停一段时间,线程正在工作。我怎么能这样做?
答案 0 :(得分:0)
您应该使用异步任务。这是一种允许您获得进展和结束信息的线程。
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");
}
}
来源:Android开发人员
onProgressUpdate 和 onPostExecute 分别在进度更改和完成时调用。