Отображение экрана загрузки?

Я хочу показать экран загрузки, пока мои удвоения, долгота и широта равны 0. В настоящее время мой диалог даже не отображается, и появляется ошибка:

while(awesome.longitude == 0 && awesome.latitude == 0){

            Log.v(TAG, "In While");

            ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "",
                    "Fetching Location...Please wait. If this takes too long, try again.", true);

            dialog.show();

        }

Долгота и широта - это переменные в классе RuchirLocation, а awesome - объект RuchirLocation

Цикл while проходит, но диалог не отображается. Затем, после цикла около 50 раз, я получаю эту ошибку:

 Caused by: java.lang.RuntimeException: Could not read input channel file descriptors from parcel.

указывая на:

        ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "",
                "Fetching Location...Please wait. If this takes too long, try again.", true);

Как я могу это исправить? Я просто хочу показать диалог загрузки, пока мои переменные равны 0.

Спасибо,

Ruchir

Ответ 1

Правильный способ состоит в том, чтобы сначала отобразить диалог, и как только вы получите значение этих переменных, затем отпустите диалог выполнения.

ProgressDialog pd;

if(awesome.longitude == 0 && awesome.latitude == 0){
    pd = new ProgressDialog(//context here);
    pd.setMessage("Loading...")
    pd.show();
}

И как только вы получите значение этих переменных -

pd.dismiss();