Зафиксируйте ориентацию до конца Asynctask
Только хочу заблокировать ориентацию, пока все данные не будут загружены в моем представлении. Поэтому я подумал о следующем коде, но он не работает.
private class task extends AsyncTask<String, Void, String> {
protected String doInBackground(String... params) {
...
}
protected void onPostExecute(String result) {
...
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
protected void onPreExecute() {
...
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}
}
Когда я запускаю эти две строкиSENSOR
а такжеNOSENSOR
мой экран поворачивается по горизонтали автоматически, не понимая почему. Что может происходить?
РЕДАКТИРОВАТЬ: Я поставил следующие строки, чтобы проверить текущую ориентацию со следующим результатом:
protected void onPreExecute() {
if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
Log.e("TAG","LANDSCAPE");
}else{
Log.e("TAG","PORTRAIT");
}
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}
Результат Logcat:
LANDSCAPE
Но если я уберу две строки (SetRequestedOrientation
) я получаю это в logcat:
PORTRAIT