Schwierigkeiten bei der änderung, die Nachricht von der Fortschritts-dialog, in asynchrone Aufgabe
Habe ich erstellt eine asynchrone Aufgabe und möchten, ändern Sie die Nachricht von der Fortschrittsdialog während der verschiedenen Phasen der doBackground. Hier ist der code:
public class sc extends AsyncTask<Integer,String,Void>
{
ProgressDialog dialog;
protected void onPreExecute()
{
dialog=new ProgressDialog(Loc.this);
dialog.show();
}
@Override
protected Void doInBackground(Integer... params)
{
onProgressUpdate("Contacting server..Please wait..");
//Do some work
onProgressUpdate("Processing the result");
//Do some work
onProgressUpdate("Calculating..");
dialog.dismiss();
return null;
}
protected void onProgressUpdate(String ui)
{
dialog.setMessage(ui);
}
}
Aber das problem ist, dass der Fortschrittsdialog zeigt nur die erste Nachricht immer. Bitte helfen Sie mir, eine Lösung zu finden.
- hast du das bestätigen die sehr BASIC debugging und sicherzustellen, dass es ist eigentlich Los, um den Fortschritt aktualisiert Methode überhaupt?
- Ist dieser cut/paste aus deinem code? Es ist ein Tippfehler im code: Ihre 'onProgressUpdate mth fehlt ein 'r'
- Die erste Nachricht wird mit Hilfe des Fortschritts aktualisieren. Das Problem ist, dass nach, dass es nicht mit der nächsten Meldung, aber die Ausführung anderen codes zwischen den Fortschritt-update fordert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Urrrm, Nein, das wird nicht funktionieren.
Versuchen...
Müssen Sie "veröffentlichen" Ihre Fortschritte in
doInBackground(..)
um füronProgressUpdate(...)
genannt zu werden.Auch nicht nennen
dialog.dismiss()
imdoInBackground(...)
nennen es inonPostExecute(...)
statt.<String,String,Void>
- es ist der zweite parameter geben, die diktiert, was übergeben wirdonProgressUpdate()
.Ich denke, es sollte sein..
nicht
in doInBack..()
Etwas wie
Die Frage könnte auch sein, dass Sie nicht eine "ursprüngliche Nachricht". Wenn Sie nicht eine Nachricht für Ihre
ProgressDialog
bevor Sie versuchen zu tun, so innerhalb vononProgressUpdate
wird es nicht funktionieren.Beachten Sie auch, dass, wenn Sie eine Stand-und eine Nachricht, die Sie verwenden können, eine Integer-variable argument mit der man die ganzen zahlen definieren die Höhe des Fortschritts und der weiteren Definition der Nachricht als index einer
String[]
array von Nachrichten (wenn die Nachrichten bereits im Vorhinein bekannt).