2012-10-05 34 views
0

我希望我的Android應用程序僅實例化一次它的主屏幕活動。我正在適當地管理後臺堆棧以實現此目的,但剛剛發現應用程序啓動時的定位問題。確保屏幕方向固定爲縱向,永遠不會更改

目視此方向更改僅在模擬器上顯示。 (可能運行得太快而無法在設備上觀察到)。

這裏發生了什麼:: - >

activity.onCreate() 
activity.onDestroy() 
activity.onCreate() 

這種順序是有道理的,並通過方向的變化而引起的。什麼是沒有意義的(對我)是,它發生在所有的,因爲我已經做了以下防止取向改變:: - >

AndroidManifest.xml含有

android:screenOrientation="portrait" 

我的所有活動並在主屏幕活動onCreate()方法,我打電話

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

那麼,爲什麼我會得到一個方向更改?

回答

1

添加android:screenOrientation="portrait"在您的清單文件,你聲明這樣

<activity android:name=".yourActivity" 
      .... 
      android:screenOrientation="portrait"/> 

您的活動,如果你想使用Java代碼 做嘗試

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

setContentView之前爲您的活動在onCreate()

請參閱here

+0

我唯一不同的是在setContentView之後調用setRequestedOrientation。無論它是在之後還是之前,似乎都沒有區別。似乎你的答案是正確的,但我必須做出其他錯誤才能導致onDestroy。謝謝您的幫助。 –