Потеря перестановочных ориентаций

Im новое для android. Я написал пару программ и попробовал их на своем телефоне. Когда я переключаю ориентации, то, как мой телефон, перезапускается программа. Все переменные меняются. На самом деле единственное, что не сбрасывается, это текст, который находится в текстовых представлениях редактирования. Что вызывает это? Как я могу остановить его? Я пробовал посмотреть его на google и на переполнение стека, но все, что я вижу, – это то, как ориентация представления меняется вместе. Я даже попытался в одной программе установить мои переменные с помощью метода get text, но это не сработает.

Когда я переключаю ориентации, то, как мой телефон, перезапускается программа.

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

Что вызывает это? Как я могу остановить его?

Это по дизайну, и для его остановки вы можете или не хотите этого делать.

Как уже упоминалось, можно указать, что вы хотите самостоятельно отрегулировать «конфигурацию» (например, ориентацию) или даже заставить только один (например, пейзаж или портрет).

Однако во многих случаях разработчик приложения может выбрать изменение макета на основе того, находится ли устройство в той или иной ориентации. Некоторые макеты могут отлично работать в портрете, но не в ландшафте (или наоборот), и цель разработанного подхода (уничтожить / воссоздать текущую видимую Activity ) предназначена для этого.

Если разработчик не хочет обрабатывать конфигурацию самостоятельно или принуждает определенную ориентацию, правильный способ справиться с этим должен состоять в том, чтобы все данные, введенные в «изменчивые» элементы пользовательского интерфейса (например, EditTexts), были правильно сохранены и воссозданы после изменения ориентации.

Для этого важно понимать жизненный цикл деятельности, поскольку использует различные методы Activity , которые на протяжении жизненного цикла называются для сохранения / восстановления данных.

Основное чтение …

Изменения времени выполнения

Жизненный цикл деятельности

Основы применения

Убедитесь, что вы реализуете onSaveInstanceState и будьте готовы восстановить свою активность из Bundle in onCreate и все будет готово. Они будут вызваны во время вращения, поэтому после этого вы будете иметь новую активность, но если вы сохранили свое состояние и сможете его восстановить, не о чем беспокоиться.

Это по дизайну, onCreate будет вызываться при изменении ориентации. Если это нежелательно, вы можете настроить его, чтобы он не реагировал на изменения ориентации в AndroidManifest.xml , поэтому ваша активность не будет воссоздана, установка android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" для вашей активности будет Ограничьте его в портретном режиме.

Для получения дополнительной информации о настройках см. Это .

Посмотрите на этот ответ : найдите ответ Роберта. Это именно то, что вам нужно сделать.

Лучше добавьте android:configChanges="keyboardHidden|orientation|screenSize" to AndroidManifest.xml in android:configChanges="keyboardHidden|orientation|screenSize" to