我有這個類從一個片段被調用。進度更新被調用,但消息不會更新。我也沒有看到任何進度條或微調。只是標題和消息,看到了一些類似的問題,但沒有進展欄根本沒有顯示。此外,我的消息在onProgressUpdate中根本不會更新,但打印出的值確實表明它在onProgressUpdate內增加。進度對話框顯示,但沒有進度條顯示和消息不更新
編輯:這裏是我開始工作
DownloadFilesTask download = new DownloadFilesTask();
download.execute(urls.toArray(new String[urls.size()]));
這裏是類
private class DownloadFilesTask extends AsyncTask<String, Integer, Long> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute()
{
progressDialog = ProgressDialog.show(getActivity(), "Downloading","Downloaded 0/"+urls.size(), false);
progressDialog.setProgress(0);
progressDialog.setMax(urls.size());
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
}
@Override
protected Long doInBackground(String[] urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
//Do things in background here
publishProgress(new Integer[] {i});
}
return totalSize;
}
@Override
protected void onProgressUpdate(final Integer... progress) {
System.out.println(progress[0]); //This does print correctly
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
progressDialog.setProgress(progress[0]);
progressDialog.setMessage("Downloaded "+ progress[0] +"/"+urls.size());
}
});
}
@Override
protected void onPostExecute(Long result) {
progressDialog.dismiss();
Toast t = Toast.makeText(getActivity(), "Downloaded", Toast.LENGTH_LONG);
t.show();
}
}
您是如何開始執行任務的,請顯示代碼。 – starkshang
編輯它以顯示我啓動它的方式,它只是您開始任務的通用方式,這就是爲什麼我沒有包含它。這些幫助有用? – Zach