我開始閱讀有關活動生命週期回調和保存狀態的內容,並且有很多內容我不明白 - 我正在編寫一個Android應用程序,但我想問一些更一般的問題問題,而不是如何專門爲我目前的少數活動等,我想有一個更好的整體看法,這是如何工作的!活動生命週期方法和保存狀態
有多種方法兩組我已經看到了正在使用(我見過一兩個人,但不願進一步混淆自己...)
- 的onPause,等的onResume,
- 然後onSaveInstanceState。
他們和我們應該使用它們的環境之間有什麼區別?我發現一些海報使用正常生命週期回調之一的問題,並被告知使用onSaveInstanceState,所以我們何時應該實現onPause而不是onSaveInstanceState等等。有些帖子提到的方法只用於暫態,有人可以擴展嗎?
我已經看到狀態被用來表示略有不同的東西 - UI/View狀態和Activity狀態,兩者有什麼區別?
我也有點不確定它們是什麼意思的狀態,當我們保存狀態什麼樣的東西,我們正確地保存,任何人都可以給一些快速的例子(我不是指實際的代碼)? Android開發人員指南說,Android系統會自動處理這些內容,那麼我們應該關注什麼?由onCreate和onSaveInstanceState使用的Bundle對象只存儲簡單的值,那麼更復雜的對象和數組又如何呢?
感謝
在錯誤消息示例中,它是否未保存,因爲它不是在onCreate期間添加的初始UI的一部分?因此,由於用戶交互(或其他)而對UI的任何更改都不會自動保存? – kemka 2013-02-27 17:53:11
是的,確切地說。由於用戶交互而對用戶界面進行的某些更改將自動保存(例如,將文本輸入到EditText中)。但是在TextView上調用setText不會被保存,並且在View上調用setBackgroundxxx()也不會被保存。這就是您可以使用saved-instance-state來「修復」這個問題的地方。 – 2013-02-27 17:57:47