Что делать при повороте экрана в 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().

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *