2012-05-08 225 views
3

我有一個畫布,並且在方向更改時重新繪製。這是一個不是由android提供的自定義畫布。防止應用程序在方向更改期間重新啓動

當屏幕布局發生變化時,應用程序狀態和(所有視圖的狀態都會被重置)。我只將屏幕方向改爲肖像;它保持屏幕布局不變,但應用程序再次被重置。

我檢查了文檔,發現活動被破壞並在方向改變時再次重新啓動。 Savestate()不能保存和加載位圖數據或我的自定義畫布所需的任何大數據。

我再次檢查了文檔,發現處理運行時更改主題,其中提到onConfigurationChanged(),當發生特定的配置更改時調用,在我的情況下是'orientation'。此方法可防止重新啓動並使開發人員如何實施配置更改。它甚至在最後一段中提到,如果我不實現該方法,那麼這隻會導致活動跳過重新啓動()並且什麼也不做。我設置清單文件爲

android:screenOrientation="portrait" 
android:configChanges="orientation" 

而我沒有實現onConfigurationChanged()。但是這也沒有幫助。我不知道爲什麼。這似乎對我很有幫助。

如果您有任何問題,請發佈解決方案。 此外,應用程序需要一些合理的時間,並且我希望應用程序在方向更改時不要重新啓動。事實上,當這種情況發生時,我不想做任何事情。 我也在使用模擬器,所以請澄清它是否只是模擬器的問題。

P.S.我的互聯網連接斷開,我正在使用我的笨手機客戶端。 我檢查了脫機文檔。請忍受我的拼寫。我正在努力尋找解決方案,但目前我已經癱瘓了。

+1

可能dublicate的http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android – superM

+0

謝謝,如果我的網絡沒有關閉,我會檢查。 –

+0

你是第一個感謝的人,如果有可能的話)))很高興它幫助你。 – superM

回答

7

使用此你AndroidMenifest.xml

<activity 
      android:name="MyActivity" 
      android:configChanges="orientation|keyboard|keyboardHidden" 
      android:screenOrientation="sensor" /> 
+0

這解決了,其實我認爲問題是模擬器顯示鍵盤導致應用程序重新啓動。我應該把鍵盤的值也放在一邊。愚蠢的模擬器。 –

+0

我無法將其標記爲來自我的移動客戶端的答案,將盡快標記爲答案。 –

+0

當然,你喜歡 – Arslan

0

對於在AndroidManifest每個活動screenOrientation可以指定。例如,爲了指定該活動總是停留在肖像模式中,以下可以是 添加到活動元件:

機器人:screenOrientation =「縱向」

類似地,橫向模式可以使用指定的以下:

機器人:screenOrientation =「風景」

不過,先前還是引起活性被破壞和第三種方法是儘可能硬鍵盤 滑動out.Therefore重新啓動:給Android系統那 應用程序應該處理方向和鍵盤滑出events.This由 添加下列屬性的活動元素來完成: 機器人:configChanges =「方向| keyboardHidden」

1

寫這個代碼清單:

android:configChanges="orientation|screenSize|keyboardHidden" 
相關問題