[英]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.