Как я могу переключиться на другое занятие при повороте телефона?
Мои требования:
- Упражнение A и B - только портрет
- Acitvity L - альбомнаятолько
- Когда отображается ландшафтный режим A или B, вместо этого запускается L. Когда будет отображаться портрет L, отображаются A или B.
Я могу создать это поведение, ожидая кнопку возврата. Когда она нажата, я получаю A / B в альбомной ориентации или L в портретной, что я хочу предотвратить.
Что я делаю (Действия A и B, но L похожа)
Чтобы вызвать вызов активности при изменении ориентации:
@Override
public void onConfigurationChanged(Configuration newConfig) {
int newOrientation = newConfig.orientation;
if (newOrientation == Configuration.ORIENTATION_LANDSCAPE) {
Intent intent = new Intent(this, ActivityL.class);
startActivity(intent);
}
super.onConfigurationChanged(newConfig);
}
Я хочу что-то вроде следующего. Но ручная (пере) установка ориентации предотвращает вызов onConfigurationChanged () вообще:
@Override
public void onResume(){
super.onResume();
int currentOrientation = this.getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
Конечно, то же самое происходит, если я делаю это в других методах жизненного цикла или onCreate (...).
Все действия имеют:
android:screenOrientation="sensor"
Я также пытался имитировать изменение ориентации, используя угол поворота, но тогда поведение кажется в основном случайным и даже близко к нормальному изменению ориентации.