すべてのデータがビューに読み込まれるまで、方向をブロックしたいだけです。そこで、次のコードについて考えましたが、機能しません。
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);
}
}
これらの2行を実行する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
しかし、2行(SetRequestedOrientation
)を削除すると、logcatでこれを取得できますか?
PORTRAIT