![](/img/trans.png)
[英]Android App is crashing in Super.onCreate(savedInstanceState) at the very begining
[英]Android - savedInstanceState can be restored only in onRestoreInstanceState() not in onCreate()
我是Android的初學者,嘗試更改方向時恢復實例狀態。
當我在onRestoreInstanceState()
方法中實現恢復時,它可以工作。 但是,當在onCreate()
方法中實現時,則不會(好像未實現任何還原一樣), EditText
視圖顯示為空。
問題是,似乎savedInstanceState != null
中的測試未通過。
這是在onCreate()
中實現的代碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState != null) {
EditText editText = (EditText) findViewById(R.id.edit_message);
editText.setText(savedInstanceState.getString("test_msg"));
}
}
// This method works as expected.
// public void onRestoreInstanceState(Bundle savedInstanceState) {
// EditText editText = (EditText) findViewById(R.id.edit_message);
// editText.setText(savedInstanceState.getString("test_msg"));
// }
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putString("test_msg", "this is test message");
super.onSaveInstanceState(savedInstanceState);
}
看一下活動生命周期,它可能會幫助您解決問題。
在您的代碼中,似乎有問題的是,您僅在將某些內容放入Bundle之后才調用super.onSaveInstanceState(savedInstanceState),請嘗試首先調用此方法,然后再將其添加到Bundle中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.