2010-09-17 37 views
1

我不希望每次旋轉設備時都重新創建Activity,因此我已將android:configChanges =「keyboardHidden | orientation」標記放入我的清單文件。android:手動處理配置更改的優點/缺點

這種方法有什麼缺點嗎?屏幕似乎在旋轉時自動重新佈局,並且一切運行良好,優點是我無需每次旋轉屏幕時都重新初始化我活動中的所有對象。

謝謝!

回答

1

不知道你是否仍然想要一個答案,但我猜測它的缺點是它並不真的讓你知道你的應用程序工作正常,如果用戶接聽電話並將你的應用程序置於後臺。換句話說,如果您的應用程序能夠在狀態變化最小的情況下保持方向更改,那麼它應該能夠處理撥號器,讓焦點轉移。此外,如果您根據方向或關鍵字對資源進行了任何更改(例如,如果您有儀表板屏幕並且想要更改主頁按鈕的位置),則Android不會自動爲您加載這些資源。

看看Google的設計模式,Google似乎使用了兩種方法。例如,在新的Google+應用中,它們不依賴於configChanges選項,因爲LogCat顯示的消息爲unexpected resume of activity,對於我來說只有在活動被銷燬並重新創建時纔會顯示。谷歌確實在其他地方使用該選項,例如日曆應用程序來編輯約會,以及我認爲的瀏覽器。

因此,設計不帶configChanges的應用程序是一個好主意,並且如果有一些東西無法恢復(比如是否顯示上下文菜單),一旦一切正常工作,稍後將其添加。

+0

在新的筆記中,您可以使用'Fragment's和'setRetainInstance()'方法 – 2012-04-17 05:04:17