Я посмотрел на несколько других вопросов, касающихся аналогичной проблемы, и понял, что мне нужно использовать метод onProgressUpdate
, чтобы изменить сообщение ProgressDialog
.
Например, у меня есть такой код, который выполняется в AsyncTask
doInBackGround
(это очень маленький пример):
byte[] data = getBytesFromFile(image);
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
pictures.dia.setProgress(30);
pictures.dia.setMessage("Data beginning upload sequence...");
URL connectURL = new URL(this.base_url);
HttpURLConnection conn = (HttpURLConnection) connectURL.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data, boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
pictures.dia.setProgress(40);
pictures.dia.setMessage("Output Stream prepared...");
Когда я запускаю таким образом, Я получаю сообщение об ошибке Leaky Window, в котором говорится, что я не могу изменить сообщение dia
за пределами AsyncTask
.
Так что мой вопрос: как мне использовать onProgressUpdate
, чтобы установить сообщение dia
когда прогресс dia
достигает определенного числа?(то есть, когда dia
progress = 30, заставьте его сказать «Последовательность выгрузки данных ...»)
onProgressUpdate
, очевидно, всегда должен проверять прогресс dia
(как и слушатель, я полагаю,) [если это еще не сделано, как я могу заставить это сделать это?]