Изменение ориентации экрана в Android без перезагрузки

Я хочу изменить ориентацию программным образом при запуске приложения для Android с этими строками кода:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 

Они работают до сих пор, но основная проблема заключается в том, что вся деятельность перезагружается, когда меняется ориентация экрана, и я не хочу этого. Является ли это возможным? Благодарю.

EDIT: Хорошо, после того, как я узнал, что мне не хватает. Мне пришлось включить также «screenSize» в свойство configChanges, так что

 android:configChanges="orientation|screenSize" 

Решила все это.

Solutions Collecting From Web of "Изменение ориентации экрана в Android без перезагрузки"

См. Редактирование @luisfer. Для таргетинга на Android 3.2 и выше вам необходимо ОБО

 android:configChanges="orientation|screenSize" 

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

Вам необходимо переопределить onSaveInstanceState (Bundle savedInstanceState) и записать значения состояния приложения, которые вы хотите изменить, в параметр Bundle

В файле AndroidManifest добавьте android:configChanges="orientation" для активности, с которой вы хотите справиться с этой ориентацией

В работе используется метод onConfigurationChange overrided. Задайте задачу, с которой вы хотите справиться с изменением ориентации.

Обосновано здесь:

Android, как не уничтожать активность при повороте устройства?

Добавить:

android:configChanges="orientation"

Вашему андроидному манифесту.

видеть:

http://developer.android.com/guide/topics/manifest/activity-element.html#config

Вызовите этот метод и установите файл манифеста

 android:configChanges="orientation|screenSize|keyboardHidden" public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } } Размер android:configChanges="orientation|screenSize|keyboardHidden" public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); } }