Я пытаюсь сделать простое 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.
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();
}
попробуйте это
this.pd = ProgressDialog.show(this,"Loading...", "Please wait", true, false);
и да, я думаю, что та же проблема с вашим контекстом.