我對用戶設備旋轉時被破壞並重新創建的Activity
有點困惑。在屏幕旋轉/活動破壞後在Android中保持數據視圖/佈局
我一直在看四周,我明白這樣做的理由(這基本上是「力量」的開發,以確保他們沒有「錯過」時旋轉/語言/其他變化的任何東西)
我很高興尊重最佳做法,但如果它被視爲是這樣的話,但它引出了一個問題:
我該如何'記住'遊戲/應用程序的狀態,以便當屏幕旋轉時,我有東西從中重新產生用戶在看什麼?
從我所看到的,絕對一切都被銷燬,基類構造函數運行,並且Activity
中的所有變量都爲'null'。
我懷疑「savedInstanceState」(Bundle
類),我會收集這些數據,但閱讀各地似乎只被使用時,應用程序是由缺乏資源的關閉(以及一些其他極端邊緣案件)
我誤解或誤解了savedInstanceState的目的?如果我足夠謹慎,在輪換時不會錯過任何事情,放棄最佳做法(讓Activity
被銷燬)是明智的嗎?提前感謝您的任何建議。
我應該注意到這個問題,適用於遊戲編程(我不使用佈局XML)
最佳實踐並不總是最佳的..你想讓你的活動被重新創建嗎?你想做旋轉工作嗎? savedInstanceState是存儲要傳遞給Activity重新創建的數據的位置,但由於您沒有使用XML佈局,因此可以考慮在清單中的activity中添加「android:configChanges =」orientation「'。這會讓你手動控制旋轉變化過程中發生的情況。 – JustinMorris
我想要重新創建「活動」嗎?不是真的,如果我能避免它。除了可能更新遊戲UI以適應風景/肖像(如果Activity未被銷燬,這將變得必要)之外,沒有任何工作要做。 **可以公平地說,一個不使用XML佈局的遊戲(直接繪製到畫布上)應該通常使用'android:configChanges ='orientation'方法嗎?** – 1owk3y
嗨Justin。我現在正在使用您的解決方案,它的工作方式就像一種享受。我認爲給你提供正確答案是公平的。請發表您的評論(或類似的)作爲答案,我會給你正確的標記:) – 1owk3y