Mam tę klasę, która zostanie wywołana z fragmentu. Aktualizacje postępu są wywoływane, ale komunikat nie zostanie zaktualizowany. Nie widzę też żadnego paska postępu ani spinnera. Tylko tytuł i wiadomość, widziałem kilka podobnych problemów, ale nic, gdzie pasek postępu w ogóle nie jest wyświetlany. Ponadto, moja wiadomość nie będzie w ogóle aktualizowana w onProgressUpdate, ale wydrukowanie wartości pokazuje, że wzrasta wewnątrz onProgressUpdate.Okno dialogowe postępu, ale brak paska postępu i komunikat nie jest aktualizowany.
Edycja: Oto jak ja uruchomić zadanie
DownloadFilesTask download = new DownloadFilesTask();
download.execute(urls.toArray(new String[urls.size()]));
Tutaj jest klasa
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();
}
}
Jak rozpocząć zadanie, proszę pokazać kod. – starkshang
Edytował tak, aby pokazać sposób, w jaki go uruchamiam, jest to tylko ogólny sposób rozpoczęcia zadania, dlatego nie uwzględniłem go. Czy to w ogóle pomaga? – Zach