Загрузка данных


Ниже представлены ответы на вопросы из вашего списка.

---

▎1. Основы Activity

• Что такое Activity?
    Activity — это компонент Android, представляющий собой отдельный экран с пользовательским интерфейсом. Она служит точкой входа для взаимодействия пользователя с приложением.
• Что такое жизненный цикл Activity и зачем его понимать?
    Жизненный цикл — это набор состояний, через которые проходит Activity с момента создания до уничтожения. Понимание жизненного цикла критически важно, чтобы приложение работало корректно: не «падало» при повороте экрана, не тратило заряд батареи в фоне и не теряло данные пользователя.
• Методы обратного вызова (callbacks):
    onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart().

▎2. Основные состояния Activity

• Описания состояний:
    – Resumed (Active/Running): Activity находится на переднем плане, пользователь может взаимодействовать с ней.
    – Paused: Activity частично перекрыта другим компонентом (например, полупрозрачным диалоговым окном), пользователь не может с ней взаимодействовать.
    – Stopped: Activity полностью скрыта, но объект всё еще в памяти.
    – Destroyed: Activity полностью удалена из памяти.
• Видна, но нельзя взаимодействовать: Состояние Paused.
• Полностью скрыта, но не уничтожена: Состояние Stopped.

▎3. Методы жизненного цикла

• Назначение:
    – onCreate(): Инициализация (создание UI, связывание данных).
    – onStart(): Делает Activity видимой для пользователя.
    – onResume(): Подготовка к взаимодействию (фокус).
    – onPause(): Остановка анимаций/таймеров перед тем, как Activity перестанет быть активной.
    – onStop(): Освобождение тяжелых ресурсов.
    – onDestroy(): Финальная очистка перед уничтожением.
    – onRestart(): Вызывается, если Activity возвращается из состояния Stopped.
• Порядок запуска: onCreate() -> onStart() -> onResume().
• Сворачивание и возврат:
    – Сворачивание: onPause() -> onStop().
    – Возврат: onRestart() -> onStart() -> onResume().

▎4. Поворот экрана

• Что происходит: По умолчанию Activity полностью уничтожается и создается заново. Это происходит потому, что конфигурация устройства (ориентация) изменилась.
• Вызываемые методы: onPause() -> onStop() -> onSaveInstanceState() -> onDestroy() -> onCreate() -> onStart() -> onRestoreInstanceState() -> onResume().
• Сохранение данных: Используется метод onSaveInstanceState(Bundle outState). В него кладутся данные (ключ-значение), которые потом можно прочитать в onCreate() или onRestoreInstanceState() после пересоздания.

▎5. Практическое значение

• Зачем освобождать ресурсы: Чтобы предотвратить утечки памяти и не расходовать заряд батареи, когда приложение не активно.
• Что будет, если не отписаться/не остановить:
    – Утечки памяти (Memory Leaks), что в итоге приведет к OutOfMemoryError и вылету приложения (Crash).
    – Лишний расход батареи (датчики продолжают работать в фоне).
    – Возможные ошибки, когда колбэк (callback) от датчика пытается обновить UI уже уничтоженного экрана.
• Пример: Приложение «Музыкальный плеер». Если не остановить проигрывание или освободить ресурсы правильно при сворачивании, звук может продолжать играть некорректно, или приложение может быть принудительно закрыто системой из-за удержания ресурсов в фоне.