Когда я переключаю ориентацию, это как мой телефон перезапускает программу.
Если быть точным, видимый в данный момент Activity
полностью уничтожается и воссоздается.Другие компоненты вашего «приложения» могут или не могут быть затронуты.
Что вызывает это?Как я могу остановить это?
Это по замыслу, а что касается остановки, вы можете или не хотите этого делать.
Как уже упоминалось, можно указатьчто вы хотите обрабатывать изменения конфигурации (например, ориентацию) самостоятельно или даже принудительно вносить только одно (например, альбомную или книжную ориентацию).
Однако во многих случаях разработчик приложения может выбрать изменение макета на основена том, находится ли устройство в той или иной ориентации.Некоторые макеты могут нормально работать в портретной ориентации, но не в альбомной (или наоборот), и цель разработанного подхода (уничтожить / воссоздать текущий видимый Activity
) предназначена для приспособления к этому.
Если разработчиквыбирает не обрабатывать изменения конфигурации самостоятельно или форсировать определенную ориентацию, правильный способ обработки вещей - убедиться, что все данные, введенные в «изменчивые» элементы пользовательского интерфейса (например, EditTexts), правильно сохраняются и воссоздаются после изменения ориентации.
Для этого необходимо понимание жизненного цикла Activity
, так как используются различные Activity
методы, которые вызываются на протяжении жизненного цикла для сохранения / восстановления данных.
Essentialчтение ...
Изменения времени выполнения
Жизненный цикл активности
Основы применения