2016-07-06 77 views

回答

2

如果將應用程序的狀態保存在一個包中(通常是onSaveInstanceState中的非持久動態數據),那麼如果需要重新創建活動(例如,方向更改),它可以傳回到onCreate,以便您不要失去這個先前的信息。如果未提供數據,則savedInstanceState爲空。

你需要重寫的onSaveInstanceState(捆綁savedInstanceState)和寫要更改的捆綁參數這樣的應用程序的狀態值:

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    // Save UI state changes to the savedInstanceState. 
    // This bundle will be passed to onCreate if the process is 
    // killed and restarted. 
    savedInstanceState.putBoolean("MyBoolean", true); 
    savedInstanceState.putDouble("myDouble", 1.9); 
    savedInstanceState.putInt("MyInt", 1); 
    savedInstanceState.putString("MyString", "Welcome back to Android"); 
    // etc. 
} 

的包基本上存儲NVP(「名稱的方式 - 值對「)的地圖,並將在獲得通過到的onCreate(),也onRestoreInstanceState(),您會提取這樣的價值觀:我想知道,

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Restore UI state from the savedInstanceState. 
    // This bundle has also been passed to onCreate. 
    boolean myBoolean = savedInstanceState.getBoolean("MyBoolean"); 
    double myDouble = savedInstanceState.getDouble("myDouble"); 
    int myInt = savedInstanceState.getInt("MyInt"); 
    String myString = savedInstanceState.getString("MyString"); 
} 
+0

但是先生這種捆綁對象是如何創建... –

+0

你能告訴我在哪裏嗎?活動對象已創建 –

相關問題