Ich versuche, etwas Ruhezeit in meiner Asynctask hinzuzufügen, weil mein ProgressDialog jetzt zu schnell ist, wenn nicht viele Daten geladen werden.Fehler bei der Verwendung von Thread.sleep in einer Asynctask
Ich versuchte dies:
@Override
protected Boolean doInBackground(Void... params) {
try {
progressDialog.setMessage("Loading first thing...");
firstThing();
progressDialog.incrementProgressBy(1);
Thread.sleep(500);
//...repeat above four lines a few times for second, third, fourth thing, etc
return true;
}
catch (Exception e) {
Log.e("MyClassName", "There was an error: " + e);
return false;
}
}
Ich erhalte die Fehlermeldung „Nur das Original-Thread, das eine Ansicht erstellt wurde, kann seine Ansichten berühren.“
Sie aktualisieren UI-Ansichten außerhalb Android-Hauptthread. DoInBackground wird in einem anderen Thread ausgeführt, sodass Sie die Ansichten nicht aktualisieren können. Wenn Sie also die Ansicht aktualisieren möchten, sollten Sie onPreExectute, onPostExcture oder onProgressUpdate verwenden. Überprüfen Sie https://developer.android.com/reference/android/os/AsyncTask.html – AndroidRuntimeException
Ich habe diese außer Kraft gesetzt, ja, ich habe gerade nicht die hier – KaliMa