Я пытаюсь сделать простой ProgressDialog
, пока мои AsyncTask
извлекают данные. В моем onPreExecute()
методе я это:ProgressDialog в AsyncTask выдает исключение
pd = ProgressDialog.show(c, "Loading...", "Please wait");
c
контекст передается в конструктор моей AsyncTask
из this.getApplicationContext()
. К сожалению, я получаю исключение с этим сообщением:
Невозможно добавить окно - Токен нуль не для приложения
Что я делаю неправильно?
Обновление: Использование this
вместо this.getApplicationContext()
выявило еще одну проблему. Когда я звоню ProgressDialog.show(...
, отображается индикатор ProgressDialog, но только после завершения AsyncTask
. Другими словами, загружаются данные, а затем отображается диалоговое окно. Если я включу pd.dismiss()
в мой onPostExecute()
, тогда я даже не вижу диалог (предположительно потому, что он закрыт до того, как он когда-либо откроется).
Окончательное решение: Оказывается, что fetch.get()
забивает поток пользовательского интерфейса и не пропускает отображение ProgressDialog.
Этот вопрос был дан ответ http://stackoverflow.com/questions/1561803/android-progressdialog-show-crashes-with-getapplicationcontext – Ally
Ally - Спасибо, но я не уверен, что это точно такая же проблема. Принятое решение касается ошибки Android, которая предположительно была установлена в 1.6 (я использую 2.1). Я нашел другое решение, которое заключается в создании статического метода в основной деятельности для отображения ProgressDialog. Это имеет ту же самую проблему, когда диалог не отображается до тех пор, пока ПОСЛЕ того, что данные уже загружены. – Computerish