默認情況下,如果用戶在我的應用程序運行時更改其設備的顯示語言,則Android將銷燬並重新創建活動。它這樣做是爲了確保我的應用程序正確使用最新的設置。如果我的GLSurfaceView應用程序永遠不需要讀取Android設備的語言環境,我可以安全地忽略語言環境配置更改嗎?
我可以通過將locale
添加到清單中的configChanges
屬性來覆蓋此行爲。然後,當用戶更改語言時,我只會回撥至onConfigChanged()
而不是完全重新啓動。然而,documentation說我應該「檢索所有資源」又說:
所有的這些配置的變化可能會影響應用程序看到的資源值。因此,當調用onConfigurationChanged()時,通常需要再次檢索所有資源(包括視圖佈局,drawable等)以正確處理更改。
我的問題是,這是真的對於語言環境的變化?如果我有一個假設的應用程序根本不使用用戶的語言設置,並且僅使用GLSurfaceView呈現圖形,那麼忽略此事件是否安全?如果是這樣,你可以用文檔來支持它嗎?
忽略事件似乎正常工作,它並沒有太大的意義重建時,我沒有做任何使用的語言環境的反正觀點,但我要確保我不會介紹一些微妙的錯誤。
任何信息非常感謝。
TICK,但是如果有一些文檔支持它,那將會很棒嗎? – tenpn 2012-07-12 11:03:20
我編輯了我的答案並提供了官方Android文檔的鏈接。 – chrulri 2012-07-12 11:37:16