0
我需要在非UI線程和同時運行的UI線程上運行網絡進程,以通知用戶進程正在運行,並且該應用程序未凍結,並且不會允許下一個代碼塊被執行,直到網絡連接發出響應。Android:如何讓背景和UI線程同時運行?
這樣做最好的方法是什麼?
我需要在非UI線程和同時運行的UI線程上運行網絡進程,以通知用戶進程正在運行,並且該應用程序未凍結,並且不會允許下一個代碼塊被執行,直到網絡連接發出響應。Android:如何讓背景和UI線程同時運行?
這樣做最好的方法是什麼?
AsyncTasks是要走的路。
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");
}
}
如果我想要在對話框中顯示加載圖標而不是使用publishProgress顯示遞增功能,該怎麼辦?我試過爲此使用AsyncTask,但只得到一個Handler來工作 –
@ Sorrow123444在onPreExecute中顯示ProgressDialog,然後在onPostExecute中關閉。 – dominicoder