Ich versuche, eine einfache ProgressDialog
erscheinen, während meine AsyncTask
Daten abrufen. In meiner onPreExecute()
Methode Ich habe dies:ProgressDialog in AsyncTask löst eine Ausnahme
pd = ProgressDialog.show(c, "Loading...", "Please wait");
c
ist der Kontext, in den Konstruktor meines AsyncTask
von this.getApplicationContext()
geben. Leider habe ich immer eine Ausnahme mit dieser Nachricht bekommen:
Unable Fenster hinzufügen - Token null ist nicht für eine Anwendung
Was mache ich falsch?
Update: Mit this
anstelle von this.getApplicationContext()
hat ein anderes Problem aufgedeckt. Wenn ich ProgressDialog.show(...
aufrufen, wird ein ProgressDialog angezeigt, aber erst nachdem die AsyncTask
abgeschlossen ist. Mit anderen Worten, die Daten werden geladen und dann wird der Dialog angezeigt. Wenn ich pd.dismiss()
in meinem onPostExecute()
einschließe, dann sehe ich den Dialog nie (vermutlich weil er geschlossen ist, bevor er überhaupt geöffnet wird).
Endgültige Lösung: Es stellt sich heraus, dass fetch.get()
den UI-Thread hogging und nicht den ProgressDialog anzeigen ließ.
mit dieser Frage http://stackoverflow.com/questions/1561803/android-progressdialog-show-crashes-with-getapplicationcontext – Ally
Ally beantwortet wurde - Danke, aber ich bin mir nicht sicher, es ist genau das gleiche Problem. Die akzeptierte Lösung handelt von einem Android-Bug, der angeblich in 1.6 behoben wurde (ich benutze 2.1). Ich habe eine andere Lösung gefunden, nämlich eine statische Methode in der Hauptaktivität zu erstellen, um den ProgressDialog anzuzeigen. Dies hat das gleiche Problem, bei dem der Dialog erst NACH dem Laden der Daten angezeigt wird. – Computerish