我只是一個初學者到Android,但我已經注意到了一些事情,似乎在第三記事本教程有些奇怪:Android Notepadv3教程 - saveState()在onSaveInstanceState中真的有必要嗎?
- 教程明確指出,需要從兩個的onSaveInstanceState和的onPause調用saveState和。這真的有必要嗎?在我看來,通過閱讀進程生命週期文檔,在活動被終止之前總是會調用onPause,而不管系統或用戶是這樣做的。如果是這樣,肯定只需從onPause調用saveState就足夠了?
- 在onResume和onCreate中調用populateFields()毫無意義,因爲onResume總是在onCreate之後調用。因此,如果我理解正確,onCreate中的調用沒有任何用處,可以安全地刪除。
可能有人請要麼確認這些點,或讓我知道我有誤解。
奧利
另外,這個例子中的onResume方法不是完全沒有意義的嗎?根據生命週期文檔,一個已暫停的Activity保留了它的所有狀態,那麼當它沒有被使用時(假設它們不能在別處改變),重新填充這些字段有什麼意義呢? – Olly 2010-09-08 21:16:21
一個很常見的模式是呈現一個列表視圖,當一個行被點擊時,一個新的活動被打開以允許編輯被點擊的項目。發生這種情況時,您需要在onResume期間刷新數據,以便列表視圖反映這些更改。乍一看這個例子,看起來他們實際上是從數據庫中檢索可能已被修改的數據。更有可能他們不需要在onCreate中調用populateFields(),但他們確實需要將它放在onresume中。 – Mike 2010-09-08 21:40:54
在onCreate中放入populateFields()調用而不是在onResume中是不夠的?沒有任何情況(據我所知),當這個活動暫停時底層數據可以改變的地方,因此每次活動沒有被暫停時都不需要加載它。 – Olly 2010-09-08 22:02:15