Особенности при подписке на LiveData во Fragment
Метод observe() класса LiveData принимает в качестве аргумента объект класса LifecycleOwner. Данный объект будет указывать, кто является владельцем данного Lifecycle, это необходимо чтобы колбек LifeData.observe() не триггерился когда LifecycleOwner еще не в активном состоянии (либо уже был вызван onDestory(), либо еще не был вызван onCreate() например).
Во фрагментах лучшим решением будет передавать viewLifecycleOwner, если при изменении данных в LifeData необходимо будет изменять UI. Таким образом вы будете уверены, что обновление данных на экране будет происходить когда View уже создан.
Если же UI обновлять не надо, а надо просто сохранить какую-либо информацию (например когда используется общая ViewModel для нескольких фрагментов и ViewModel нужна просто как средство коммуникации между фрагментами), то в таком случае можно использовать this, так как фрагменты реализуют интерфейс LifecycleOwner
Учитесь как в игре
AI Sprints — обучение профессиям с ИИ
Уровни, XP, достижения и рейтинги. Увидите прогресс каждый день — мотивация не пропадает даже через месяцы обучения
- Геймификация: уровни, опыт, достижения — как в игре, но навыки реальные
- Карта навыков: визуальный прогресс по каждой технологии — видите, что освоили
- Рейтинги: сравнивайте себя с другими студентами — здоровая конкуренция
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе