Активити в Android

Что есть Activity - это контейнер для UI-компонентов приложения, который выдает экран с которым юзеры могут взаимодействовать и выполнять какие-то действия, например открытое окно чата где можно ввести сообщение - это и есть запущенное активити

Что можем встретить - поворачиваешь телефон в лендскейп - и все, приложение перезагрузилось, данные пропали, форма отклика очистилась 😱 Или разворачиваешь на большом экране планшета - Activity теперь в multi-window, а у тебя UI растянулся как резинка, кнопки наложились (а если наоборот, сложили телефон (foldable), то приложение вообще вылетело с крашем в onDestroy/onCreate)

В 2026 году Activity стали еще более живыми благодаря Android 16 -foldables(складные телефоны), edge-to-edg(от края до края) по умолчанию, multi-window(разделение на несколько экранов) без ограничений на больших экранах

Жизненный цикл Activity: onCreate → onStart → onResume → (работает) → onPause → onStop → onDestroy И обратно: onRestart → onStart → onResume

Состояния в которых может находиться приложение: Created - Активити создается, но пользователь пока не может с ним взаимодействовать Started - Активити запускается, пользователь все еще не может взаимодействовать, но уже видит Resumed - Активити виден на экране и можем взаимодействовать Paused - Актвити частично виден на экране и пользователь не может взаимодействовать с ним Stopped - Активити остановлен и не виден на экране, но еще хранится в памяти Destoyed - Активити уничтожается и вычищается из памяти

Редкие, но болезненные кейсы, которые могут ломать Activity: - Foldable folding/unfolding - в Android 16 фиксили краши в lifecycle при смене состояния (fold/unfold). Если не обрабатываешь onConfigurationChanged или не используешь WindowSizeClass, то UI может сломаться - Multi-window resize - Activity пересоздается или меняет размер - если не адаптивный layout (ConstraintLayout + chains) - кнопки улетают за экран - Low-memory kill - процесс умер, вернулся из recent - savedInstanceState должен быть полным, иначе данные пропали - Dark mode switch в фоне - onConfigurationChanged - пересоздание, если не обработано - Font scale 200% + маленький экран - текст не влезает, кнопки не кликабельны - singleTask + deep link - onNewIntent вызывается вместо onCreate,если забыл обработать данные могут не загрузиться

Что тестировать обязательно: - Поворот экрана 10 раз подряд = данные не пропадают? - Свернуть - открыть другое тяжелое приложение - вернуть = состояние живое? (Мы заполнили форму, свернули приложение и вернувшись вся форма слетела, данные не сохранились в методе onPause и onStop) - Fold/unfold на foldable (эмулятор или Pixel Fold/Flip) - Multi-window: split-screen, drag-resize = UI адаптируется? - Low battery / low memory - процесс убит = restore из savedInstanceState (ситуация low memory -объект в памяти, сохранены все состояния и инфа об элементах !но в случае острой нехватки памяти(напр самой системе не хватает)-система может завершить эту операцию) - Edge-to-edge = ничего не спрятано под статус-баром/навигацией

Активити в Android | Сетка — социальная сеть от hh.ru Активити в Android | Сетка — социальная сеть от hh.ru