2013-12-08 43 views
0

我已經查看了所有網站,我不明白爲什麼它不在我身邊工作。onRestoreInstanceState永遠不會被調用/ savedInstanceState始終爲空

請找我的源代碼:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (savedInstanceState != null) { 
     Log.e("EVERYTHING", "OK"); 
    } 
} 

@Override 
public void onSaveInstanceState(Bundle outState) { 
    outState.putString("test", "titi"); 
    Log.e("Save", "titi"); 
    super.onSaveInstanceState(outState); 
} 

啓動我APPLI,然後按home鍵,然後重新啓動我的電話,並再次啓動APPLI,但savedInstanceState是空值。

你能幫我嗎。 Regards

回答

0

onSaveInstanceState用於在內存中保持狀態,因此它不適用於上述情況。如果你重新啓動你的手機,顯然所有狀態存儲不是永久存在的(只在內存中)不會被保留。

如果你想以這種方式存儲狀態,你應該看看持久的東西,例如,共享偏好或SQLite。

+0

感謝您的回答! 不使用SQLite,是否可以使用共享首選項來保存ArrayList? 我可以使用Serializable實現將類保存到文件中,然後在應用程序啓動時讀取並加載它? – Stan

+0

是的,你可以用一些努力來使用共享偏好。你也可以序列化爲一個文件。這真的取決於你。 – Szymon

相關問題