Я не знаю, правильное ли название, вот что происходит.
У меня есть приложение, которое работает по-разному на телефоне и на планшете, на телефоне он отображается как портрет на планшете, который он показывает как пейзаж.
Для этого я создал класс CoreActivity, который расширяется всеми моими действиями и делает следующее:
public class CoreActivity extends Activity {
    protected boolean _landscape = false;
    public boolean isPhone() {
        int layoutSize = getScreenLayoutSize();
        return (layoutSize == Configuration.SCREENLAYOUT_SIZE_SMALL || layoutSize == Configuration.SCREENLAYOUT_SIZE_NORMAL);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (isPhone() && !_landscape) {
            this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }
    protected int getScreenLayoutSize() {
        return (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK);
    }
}
Моя проблема возникает, когда я хочу показать экран настройки телефона в альбомном режиме, для этого я использую следующее:
@Override
protected void onCreate(Bundle savedInstanceState) {
    _landscape = true
    super.onCreate(savedInstanceState);
}
Проблема в том, что на телефоне, если пользователь держит телефон в портретном режиме (как это было бы, так как большая часть приложения находится в портретном режиме), тогда действие создается и уничтожается, а затем воссоздается. Но если они удерживают его в ландшафтном режиме, то он создается только один раз.
Моя проблема возникает, потому что в методе onCreate я запускаю потоки, которые загружают данные, а также показываю фрагменты.
Есть ли способ избежать этой проблемы? есть ли способ запустить действие с самого начала в портретном режиме, а не изменять его или создать его дважды?
Заранее благодарим за любую помощь, которую вы можете предоставить
