Вы можете сообщить системе, что ваша деятельность будет обрабатывать изменение конфигурации, например, изменение ориентации.
Измените элемент <activity>
в файле манифеста, включив атрибут android:configChanges
со значением, представляющим конфигурацию, которую вы хотите обработать:
<activity android:name=".MyActivity" android:configChanges="orientation">
Когда ваша деятельность начинается -letsскажем на onStart()
или onResume()
, запишите текущую ориентацию, чтобы вы могли использовать это значение во время выполнения действия, чтобы принять любое решение на основе этого
private int initialOrientation;
@Override
public void onResume(){
super.onResume();
initialOrientation = getResources().getConfiguration().orientation;
}
Затем в действии,определите слушателя для слушателя конфигурации, в котором вы устанавливаете ориентацию на то, чем она была, и ориентация останется такой, как есть.
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
setRequestedOrientation(initialOrientation);
}