Я разрабатываю мобильное приложение на базе Android с minSdkVersion=15. Я хотел бы поддержать обе ориентации для планшетов и только портрет для смартфонов. Все работает как шарм, но я испытываю небольшую ошибку, которая сводит меня с ума.
Когда смартфон находится в ландшафтном режиме, и я пытаюсь запустить новую активность, она открывается в ландшафтном режиме на некоторое время, а затем авторотируется на портрет.
Каждый из моих действий расширяет класс GeneralActivity:
public class GeneralActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If smartphone lock orientation to portrait
        if (!Helper.isTablet(this.getApplicationContext())){
            this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    }
}
Я обнаруживаю таблетки с помощью этой функции:
public class Helper {
    public static boolean isTablet(Context context){
        Configuration config = context.getResources().getConfiguration()
        return config.smallestScreenWidthDp >= 600;
    }
}
Я не хочу указывать android:screenOrientation внутри Manifest.xml, потому что таким образом я могу поддерживать всю ориентацию интерфейса для планшетов.
Я что-то пропустил?
ИЗМЕНИТЬ
Я решил применить наилучшую практику, предложенную в ответе Джонатана, но проблема, которую я описал, все еще здесь. Здесь мое репо на github: https://github.com/giacmarangoni/Android-Orientation-Test
