2017-01-10 12 views
0

Я хочу показать прогресс во время загрузки данных. Это работает хорошо. Но только один раз. Если я снова и снова нажимаю, возникает ошибка. Искал везде, все пробовал. Пожалуйста помоги.Показать прогресс при загрузке данных из базы данных Firebase

Рабочий код.

a.showProgressDialog(); 

     mUsersDatabaseReference.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
         a.hideProgressDialog(); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
      } 

     }); 

обновление. вот код ошибки, который я получил.

Невозможно добавить окно-токен [email protected] недействительно; работает ли ваша деятельность?

Пробовал. Пары пар показывают - рассеянно. Ровный. Не помогло. Пробовал. Сделать showProgress не статическим. Не помогло. ll попробуйте поставить dissmiss на нить ui? Должен помочь. Обновить позже.

ответ

1

showProgressDialog метод был таким.

public void showProgressDialog() { 
    if (mProgressDialog == null) { 
     mProgressDialog = new ProgressDialog(a); 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(true); 
    } 

    if (!a.isFinishing()) { 
     mProgressDialog.show(); 
    } 

} 

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

Это не помогло с первого взгляда, но после перерыва я снова посмотрел и обнаружил, что переменная mProgressDialog по-прежнему статична. Изменил его на нестатический, и это решило мой крах.

Спасибо всем за помощь.

+1

Что такое надстрочный фрагмент ??? if (! a.isFinishing()) –

Смежные вопросы