Что делать при повороте экрана в Android
При смене ориентации приложения Activity уничтожается и создается заново. Удаляются, соответственно, и все объекты. Вызываются коллбэки в составе жизненного цикла onPause(), onStop(), onSaveInstanceState(), onDestroy() – onCreate(), onStart(), onRestoreInstanceState(), onResume().
Чтобы сохранить созданные в активити объекты и данные, необходимо реализовать пару методов: первый позволяет сохранить данные – onSaveInstanceState(), а второй восстановить – onRestoreInstanceState().
Для сохранения данных переопределяется onSaveInstanceState() и данные упаковываются в объект типа Bundle.
При реинициализации активити, Bundle с сохраненным состоянием передается в onCreate() и в onRestoreInstanceState().
Система вызывает onSaveInstanceState() и onRestoreInstanceState() только в том случае, когда необходимо сохранить состояние, например при повороте экрана или в случае уничтожении Activity при нехватке памяти. Данные коллбэки не вызываются, если пользователь выходит из активити нажав Back или если активити убивается вызовом finish().
Вызов метода onSaveInstanceState() зависит от версии API. До API 28 метод вызывается до onStop(), а начиная API 28 после onStop(). onRestoreInstanceState() вызывается после onStart().
От нуля до работы за 10 месяцев
Обучающая платформа AndroidSprint
Выберите трек Android, Backend или QA. Дорожная карта от основ до Junior с менторской поддержкой на каждом этапе
- Дорожная карта: чёткий план от азов до трудоустройства — знаете, что делать дальше
- Менторы: код-ревью на каждое задание и карьерные консультации
- Результат: портфолио из проектов и поддержка при поиске работы