Если в течение минуты нет активных прослушивателей, клиент Firebase действительно закроет свое соединение с сервером.
В вашем коде, который вы вызываете loadStoreDetails
, присоединяется слушатель с addValueEventListener
из onCreate
,Поскольку вы никогда не удаляете этот прослушиватель, он будет оставаться активным постоянно с момента создания ThreeFragment
до момента выхода из программы.
Чтобы предотвратить это, и обеспечить синхронизацию данных (и соединение остается открытым), покау пользователя есть открытый фрагмент, отсоединяет слушателя в onDestroyView
или onDestroy
фрагмента.
Для этого добавьте поле члена к фрагменту:
ValueEventListener mFragmentListener;
Затем сохраните ссылку на слушателя, когда прикрепите его:
mFragmentListener = mdatabase.limitToLast(20).addValueEventListener(valueEventListener);
И, наконец, удалитеслушатель, когда фрагмент уничтожен:
@Override
public void onDestroyView() {
mdatabase.limitToLast(20).removeEventListener(mFragmentListener);
}
Отдельное примечание: вызов кода mdatabase.keepSynced(false);
не требуется в вашем коде, так как это уже поведение по умолчанию.