ProgressDialog in einem separaten thread
Ich habe eine Prozedur, die extrahiert Daten aus einer Datenbank und fügt Sie der Liste. Ich will den Fortschritt anzeigen, Dialogfeld, während die Abfrage ausgeführt wird, aber visuell wird nur angezeigt, nachdem die Abfrage ausgeführt wird. Ich glaube, ich habe zu laufen eine ProgressDialog
in einem separaten thread, folgten aber einige Vorschläge und konnte nicht damit es funktioniert.
Also in meinem Activity
ich habe nur
private void DisplayAllproductListView(String SqlStatement) {
ProgressDialog dialog =
ProgressDialog.show(MyActivity.context, "Loading", "Please wait...", true);
//..................
//..................
//execute sql query here
dialog.dismiss();
}
Dank
sepearate thread!. verwenden asynctask display progress dialog in
Versuchen Sie es mit einem AsyncTask
onPreExecute
und entlassen es in onPostExecute
.Versuchen Sie es mit einem AsyncTask
InformationsquelleAutor Alex | 2013-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
1.zeigen Sie Ihre Prozess-dialog im Haupt-thread
2.starten Sie einen neuen thread (z.B. Thread A) die Verarbeitung Ihrer schweren job
3.wenn Sie fertig sind, verwenden Sie-handler eine Nachricht zu senden, von Faden zu Faden, den letztere schneidet die Prozess-dialog
code wie dieser
private ProcessDialog pd;
Sie können tun, was schwer in einem thread.
und denken Sie daran, Sie können nur Bearbeiten, ui im main-thread.
InformationsquelleAutor kvh
Probieren Sie etwas wie dieses:
Nennen es:
versuchen Sie, den code des Adapters und listview-update in der onPostExecute-Methode. Sie können nicht ändern Sie den UI-thread aus der doInBackground-Methode, wie es läuft im hintergrund 🙂
Nochmals vielen Dank. Abfrage und vorbereiten von benutzerdefinierten Liste ist arbeiten besten in der doInBackground. wie kann ich ein Objekt übergeben CustomListDataAdaptor von doInBackground zu onPostExecute?? was ist die syntax? Dank einer million
Als asynctask sollte eine innere Klasse von deiner main-Klasse einfach zu erklären, die CustomListDataAdapter als ein Feld von deiner main-Klasse.
Gerade herausgefunden. vielen Dank!!!! Letzte, wie eine Zeichenfolge übergeben (meine sql-Abfrage) als parametr zu doInbackground?
InformationsquelleAutor Adrián Rodríguez
Alles, was Sie tun müssen, ist zu sagen Android laufen auf dem main-UI-thread. Keine Notwendigkeit, einen Handler erstellen.
InformationsquelleAutor Daniele Testa