Как изменить текст progressDialog
У меня есть asynctask, но если я реализую Thread.Sleep, то мое приложение падает, я не знаю, почему в onPreExecute я вижу свое первое сообщение, а затем через две секунды появляется другое, которое я помещаю в doInBackground, но оно не работает
private class sendMail extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
dialog.setMessage("Please wait...");
dialog.show();
}
// automatically done on worker thread (separate from UI thread)
@Override
protected Void doInBackground(Void... voids) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
dialog.setMessage("Downloading files...");
new BackgroundTask().execute();
//MY DOWNLOADING METHODS STUFF
А потом я закрываю этот диалог где-то еще
Журнал
Произошла ошибка при выполнении doInBackground()
2 ответа
Вы не можете получить доступ к элементам пользовательского интерфейса из фонового потока, вы можете обновить индикатор выполнения в onProgressUpdate
самое главное надо publishProgress(value)
в doInBackground и обновлять используя onProgressUpdate
, Узнайте больше об AsyncTask здесь.
Пример кода:
class MyTask extends AsyncTask<Integer, Integer, String> {
@Override
protected String doInBackground(Integer... params) {
for (; count <= params[0]; count++) {
try {
Thread.sleep(1000);
publishProgress(count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "Task Completed.";
}
@Override
protected void onPostExecute(String result) {
progressBar.setVisibility(View.GONE);
txt.setText(result);
btn.setText("Restart");
}
@Override
protected void onPreExecute() {
txt.setText("Task Starting...");
}
@Override
protected void onProgressUpdate(Integer... values) {
txt.setText("Running..."+ values[0]);
progressBar.setMessage("Downloading files...");
progressBar.setProgress(values[0]);
}
}
Используйте поток пользовательского интерфейса, чтобы показать диалоговое сообщение в doInBackground, обратитесь по этому /questions/3314466/vyipolnenie-zadachi-polzovatelskogo-interfejsa-v-doinbackground-v-android/3314476#3314476