SharedViewModel для фрагментов с LiveData - PullRequest
0 голосов
/ 04 мая 2020

Я экспериментирую SharedViewModel с живыми данными для фрагментов

Я использую getViewLifeCycleOwner в качестве владельца живых данных во Фрагменте 1.

Когда я перехожу к Фрагменту 2 из фрагмента 1 и, снова, когда я возвращаюсь к Фрагменту 1, liveData в Фрагмент 1 запускается автоматически

Любая причина почему это происходит?

Вот как я инициализирую viewModel в onCreate of Activity

private void initViewModel() {
    loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);
    loginActivityBinding.setViewModel(loginViewModel);
}

Инициализация ViewModel в onCreateView фрагмента

loginViewModel = new ViewModelProvider(requireActivity()).get(LoginViewModel.class);
    loginMobileNumberBinding.setViewModel(loginViewModel);

Наблюдение viewModel во фрагменте 1

loginViewModel.getLoginClicked().observe(getViewLifecycleOwner(),aBoolean {
        if(aBoolean != null && aBoolean) {

        }
    });

Актуальные данные для этого наблюдателя вызываются нажатием кнопки. Этот наблюдатель срабатывает, когда я автоматически возвращаюсь с фрагмента 2 к фрагменту 1.

...