Нет, не регургитация старого вопроса, пожалуйста, потерпите меня.Я не хочу избегать воссоздания активности в целом (без android:configChanges
в манифесте), я не хочу навсегда исправлять свою ориентацию (без android:screenOrientation
в манифесте) только потому, что мне лень внедрять сохранение экземпляра.
У меня есть приложение с тремя возможными настройками, которые пользователь может сделать: 1. автоматически изменяющий макет по ориентации, как обычно, 2. фиксированный портрет, 3. фиксированный пейзаж.В моем случае это имеет смысл, потому что книжные и альбомные дисплеи показывают различную функциональность, и пользователь может хочет ограничиться одним.Не обязательно, но есть возможность.
Приложение работает просто отлично.Я читаю настройку предпочтения в onCreate
и вызываю setRequestedOrientation
, если нахожусь в одном из фиксированных режимов.Я позволяю системе обрабатывать изменения ориентации, я не прошу обрабатывать изменения самостоятельно.
Единственная проблема с производительностью заключается в том, что, например, когда приложение запускается в портретном положении устройства, но фиксируется в альбомной ориентации, onCreate
будет вызываться дважды, один раз для первоначального запуска, один раз для setRequestedOrientation
.Это работает безупречно, я справляюсь с этим отлично, но есть снижение производительности, активность появляется с явной задержкой.(С фиксированным в манифесте screenOrientation
, только для целей тестирования, запуск выглядит намного лучше, всего один вызов onCreate
).
Итак, я ищувид кода, эквивалентный настройке манифеста screenOrientation
.Я не могу и не хочу указывать его в манифесте, но вызов его из onCreate
уже немного запаздывает с производительностью.