Должен ли я передать экземпляр Fragment или владельца, возвращенного из getViewLifecycleOwner, при вызове setLifecycleOwner для привязки данных - PullRequest
0 голосов
/ 06 ноября 2019

Какой подход правильный:

  1. Передача Fragment экземпляр как lifecycleOwner:

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        val binding = FragmentEventSettingsBinding.inflate(inflater, container, false)
        binding.lifecycleOwner = this
        return binding.root
    }
    
  2. Передача viewLifecycleOwner изFragment:

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        val binding = FragmentEventSettingsBinding.inflate(inflater, container, false)
        binding.lifecycleOwner = viewLifecycleOwner
        return binding.root
    }
    

1 Ответ

1 голос
/ 06 ноября 2019

Рекомендуемое решение - использовать жизненный цикл представления фрагмента с помощью getViewLifecycleOwner () или getViewLifecycleOwnerLiveData (), которые были добавлены в библиотеку поддержки 28.0.0 и AndroidX 1.0.0, так что LiveData будет удалять наблюдателей каждый раз, когда представление фрагмента уничтожается

Ссылка: 5 распространенных ошибок при использовании компонентов архитектуры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...