ProgressDialog в AsyncTask выдает исключение

Я пытаюсь сделать простое ProgressDialog появитесь в то время как мой AsyncTask выбирает данные. В моем onPreExecute() метод у меня есть это:

pd = ProgressDialog.show(c, "Loading...", "Please wait");

c контекст, переданный в конструктора моего AsyncTask от this.getApplicationContext(). К сожалению, я продолжаю получать исключение с этим сообщением:

Не мог добавить окно - Маркерный пустой указатель не для приложения

Что я делаю неправильно?

Обновление: Использование this вместо this.getApplicationContext() показал другую проблему. Когда я звоню ProgressDialog.show(..., ProgressDialog отображен, но только когда после AsyncTask завершился. Другими словами, загрузки данных и затем диалоговое окно отображены. Если я включаю pd.dismiss() в моем onPostExecute() затем я даже не вижу диалоговое окно (возможный, потому что оно закрывается, прежде чем оно когда-либо будет открыто).

Конечное решение: Это оказывается этим fetch.get() был hogging потоком UI и не разрешением дисплею ProgressDialog.

6
задан Computerish 30 June 2010 в 05:16
поделиться

2 ответа

ProgressDialog dialog;
@Override
    protected void onPreExecute() {
        dialog = new ProgressDialog(viewContacts.this);
        dialog.setMessage(getString(R.string.please_wait_while_loading));
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
    }
4
ответ дан 17 December 2019 в 04:41
поделиться

попробуйте это

  this.pd = ProgressDialog.show(this,"Loading...", "Please wait", true, false);

и да, я думаю, что та же проблема с вашим контекстом.

1
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: