2012-12-18 81 views
1

我有一個簡單的Activity類,它有一個onCreate()方法,如果所有初始化任務都成功,它會設置一個私有布爾字段。我在課程的其他部分閱讀了這個布爾值的值。是否有必要重寫onSaveInstanceState來保存私有字段?

public class MyActivity extends Activity 
{ 
    private boolean initializationSucceeded; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     ... 

     //if everything succeeded... 
     initializationSucceeded = true; 
    } 
} 

是否需要重寫onSaveInstanceState()挽救這個布爾的狀態,或者是我有什麼好?恐怕我不太清楚在所有這些活動生命週期邊緣案例中私人領域成員會發生什麼情況,所以希望有人能夠解釋。謝謝。

回答

1

不需要保存它,因爲每次調用onCreate並完成initialisationsucceeded都將爲true。 OnCreate是像循環一樣生命週期事件之後調用的第一件事。除非你有一個在onCreate中啓動的線程,它需要初始值爲真的值,那麼你應該沒問題。

+0

是的。爲了擴展這個答案(因爲我現在理解了活動生命週期好得多),你只需要在'onCreate()'之後保存有可能改變的成員的狀態。一個私人領域,可以通過公共的getter修改。如果您的成員在'onCreate()'中始終設置爲相同的值並且此後永遠不會被修改,則不需要保存其狀態,因爲它永遠不會有「動態」值。 –

+0

非常好。你真的只需要保存被操縱的變量的狀態,特別是用戶的變量。 – dannyRods

相關問題