2011-08-21 78 views
0

我開發了一個非常簡單的遊戲,它使用自定義視圖來繪製屏幕。在我的手機(Android 2.2)上,我可以按設備上的主頁按鈕並執行其他任務。當回到遊戲時,它會恢復到之前的確切狀態。事情是,我不必重寫任何方法,或者真的爲此行爲發生任何事情。然而,在Honeycomb上,它重置了我所期望的一切。用Honeycomb保存視圖狀態

這是非常令人費解的......我想知道是否有辦法讓Honeycomb在這方面表現得像2.2一樣。我對保存視圖狀態不太熟悉,但由於我有很多變量(數百個,取決於自定義對象的保存方式),我認爲手動操作會讓人不快。

回答

1

我能解決它。有點。

基本上,這個問題是由Android在我的活動中處理屏幕被固定到肖像模式的方式造成的。在2.2中,Android會以縱向模式打開活動,而不是重新啓動活動。但是,在Android 3.0中,它會打開活動,然後THEN旋轉屏幕,導致它重新開始活動(因爲發生旋轉時會發生這種情況)。

爲了解決這個問題,我增加了以下我的清單中的活動:

android:configChanges="keyboardHidden|orientation" 

這告訴Android你會處理配置改變自己。就我而言,我什麼都不做,因爲我的應用程序被鎖定在肖像模式下。

應用程序暫停時未清除狀態的原因是因爲onCreate()未被調用。我知道Android可以殺死應用程序,但會調用onCreate(),所以我仍然必須通過保存Activity變量並重新創建View來處理這種情況。