只想阻止方向,直到所有数据都加载到我的视图中。所以我想到了下面的代码,但它不起作用。
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