Хранит данные для View
API для работы с Model
Бизнес логика, работа с данными
Dependencies
def nav_version = "2.3.0-beta01"
def lifecycle_version = "2.2.0"
def coroutines_version = "1.3.4"
// Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version "
// Kotlin
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// Dynamic Feature Module Support
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
// Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version'
Жизненный цикл Activity
onCreate(): вызывается при создании вашей Activity.
onStart(): осуществляется подготовка к выводу activity на экран.
onRestoreInstanceState(): восстановление данных
onResume(): activity видно на экране и может взаимодействовать с пользователем.
onPause(): фокусировка на другом Activity.
onSaveInstanceState(): сохранение данных
onStop(): activity больше не видна.
onDestroy: activity уничтожена
Жизненный цикл Fragment
onAttach(): связывание с Activity
onCreate(): инициализация фрагмента
onCreateView(): установка макета
onActivityCreated(): после установки макета
onStart(): фрагмент становится видимым
onResume(): фрагмент становится активным
onPause(): фрагмент становится не активным
onStop(): фрагмент становится видимым
onDestroyView(): удаление макета из фрагмента
onDestroy: фрагмент уничтожен
onDetach(): Отвязывание от Activity
Обработка жизненных циклов
Компоненты Lifecycle выполняют действия в ответ на изменение состояния жизненного цикла Activity или Fragment.
Lifecycle это класс, который содержит информацию о состоянии жизненного цикла Activity или Fragment, и позволяет другим объектам наблюдать за этим состоянием.
Обработка жизненных циклов
Компоненты Lifecycle выполняют действия в ответ на изменение состояния жизненного цикла Activity или Fragment.
Lifecycle это класс, который содержит информацию о состоянии жизненного цикла Activity или Fragment, и позволяет другим объектам наблюдать за этим состоянием. Lifecycle использует два основных перечисления для отслеживания статуса жизненного цикла для связанного с ним компонента:
Event - События жизненного цикла . Эти события влияют на события обратного вызова в Activity или Fragment.
State - Текущее состояние компонента, отслеживаемого Lifecycle объектом.
LifecycleOwner является интерфейсом, который обозначает, что у класса есть Lifecycle. У него есть один метод, getLifecycle().
LifecycleObserver интерфейс который дает возможность подписаться на Lifecycle.
Lifecycle.Event ON_ANY - Отслеживание всех возможных событий.
Lifecycle.Event ON_CREATE - Отслеживание метода onCreate владельца жизненного цикла.
Lifecycle.Event ON_DESTROY - Отслеживание метода onDestroy владельца жизненного цикла.
Lifecycle.Event ON_PAUSE - Отслеживание метода onPause владельца жизненного цикла.
Lifecycle.Event ON_RESUME - Отслеживание метода onResume владельца жизненного цикла.
Lifecycle.Event ON_START - Отслеживание метода onStart владельца жизненного цикла.
Lifecycle.Event ON_STOP - Отслеживание метода onStop владельца жизненного цикла.
Events (события жизненного цикла)
Lifecycle.State CREATED - состояние создано для владельца жизненного цикла.
Lifecycle.State DESTROYED - состояние уничтожено для владельца жизненного цикла.
Lifecycle.State INITIALIZED - состояние инициализировано для владельца жизненного цикла.
Lifecycle.State RESUMED - состояние восстановлено для владельца жизненного цикла.
Lifecycle.State STARTED - состояние запущено для владельца жизненного цикла.
States (текущее состояние владельца жизненного цикла)
LiveData является классом для хранения данных. В отличие от обычных данных, LiveData учитывает жизненный цикл. Это означает, что LiveData учитывает жизненный цикл компонентов приложения, таких как Activities, Fragments или Services. Эта осведомленность гарантирует, что LiveData обновляет только те компоненты приложения, которые находятся в состоянии активного жизненного цикла.
Методы
value - задать значение LiveData в главном потоке
postValue - задать значение LiveData из другого потока
Transformations.map - позволяет изменить тип LiveData
MediatorLiveData это подкласс LiveData, который может наблюдать за другими LiveData и реагировать на события от них.
ViewModel - это класс, который отвечает за подготовку и управление данными для Activity или Fragment. Он также обрабатывает взаимодействие Activity / Fragment с остальной частью приложения (например, коммуникация с классами бизнес-логики).
Примечание : при смене ориентации экрана ViewModel не уничтожается.
Компонент Navigation - позволяет пользователям перемещаться между различными частями контента в вашем приложении. Компонент Navigation помогает реализовать навигацию, от простых нажатий кнопок до более сложных шаблонов. Также обеспечивает согласованное и предсказуемое взаимодействие с пользователем.
Navigation graph : это XML ресурс, который содержит всю связанную с навигацией информацию в одном централизованном месте.
NavHost: пустой контейнер, для объектов навигации
NavController: объект, который управляет навигацией приложения в NavHost.
Компонент Navigation состоит из трех ключевых частей:
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть