In meiner App gibt es eine Aktivität, die zwei AsyncTask nacheinander im Hintergrund ausführt.Wird in einer Aktivitätsproblematik zweimal ein Fortschrittsdialog angezeigt?
In diesen AsyncTasks OnPreExecute ich den Code unten haben (progressDialog ist privat):
progressDialog=UI.getProgressDialog();
progressDialog.show();
Die UI-Klasse eine Klasse ist, die einige Layout-Management implementiert, und in Verfahren getPregressDialog() Ich neue explizit erstellen ProgressDialog und gibt den neuen ProgressDialog an den Aufrufer zurück.
Im OnPostExecute() Methode von AsyncTasks habe ich den folgenden Code:
if(progressDialog.isShowing())
progressDialog.dismiss();
Nach erste Aufgabe ausgeführt und progressDialog entlassen, erscheint die zweite. Aber wird nie entlassen. Es scheint die Bedingung isShowing() gibt false zurück (Offensichtlich kann ich den Fortschrittsdialog sehen);
Irgendwelche Vorschläge?
definieren progressDialog global und verwenden progressDialog.show in ersten asynktask dann if (progressDialog.isShowing()) progressDialog.dismiss() verwenden; im zweiten asyntask ...! – Nowshad
Ja, es ist ein privates Feld in der Klasse. – Milad
kann es Verzögerung wegen schwerer Daten vom Server oder einer anderen Seite in asyntask verursachen, wenn Sie es zweimal verwenden, aber Sie können einen anderen Ansatz wie verwenden. ich sagte im obigen Kommentar ..... mache es auch öffentlich ... – Nowshad