Я не знаю, правильное ли название, вот что происходит.Как изменить ориентацию экрана, не создавая новую активность на Android?
У меня есть приложение, которое работает по-разному на телефоне и на планшете, на телефоне, которое он показывает как портрет на планшете, который он показывает как пейзаж.
Для достижения этой цели я создал класс под названием 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 я запускаю потоки, которые загружают данные, а также показываю фрагменты.
Есть ли способ избежать этой проблемы? есть ли способ начать работу с самого начала в портретном режиме, а не изменять ее, или создать ее не дважды?
Заранее спасибо за любую помощь вы можете предоставить
Деятельность всегда воссоздавалась после изменения ориентации. – Suvitruf
мой ответ работал на вас? : http://stackoverflow.com/a/27015879/1281930 – guness