只需要阻止方向,直到所有數據加載到我的視圖中。所以我想了下面的代碼,但它不起作用。鎖定方向,直到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
請檢查此問題http://stackoverflow.com/questions/3821423/background-task-progress-dialog-orientation-change-is-there-any-100-working/3821998#3821998 – Slartibartfast