2012-04-26 52 views
33

哪一個更正確?這:首先或最後一次調用super.onSaveInstanceState(bundle)?

@Override protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putLong(ID, mId); 
} 

或本:

@Override protected void onSaveInstanceState(Bundle outState) { 
    outState.putLong(ID, mId); 
    super.onSaveInstanceState(outState); 
} 

他們對我都工作我的薑餅設備和升級Froyo和Ice Cream Sandwich的模擬器,和我見過的一樣多的例子說,一個方式另一個。有關係嗎?

回答

36

只要你的鍵不衝突(例如,ID是相同的東西的Android內部使用),兩者是相同的。

+0

通過Android代碼進行調試後,我可以確認這一點。看起來像Android不會嘗試保存'Bundle outState',直到調用'onSaveInstanceState()'方法之後。因此,只要鍵不衝突,就可以在你的方法中調用'super.onSaveInstanceState(outState)'的地方。如果你願意,你甚至可以在你的方法中間調用它! – snark 2017-04-26 20:42:05

相關問題