当前位置: 代码迷 >> Android >> 请教安卓开发中的onSaveInstanceState方法的调用时机的理解
  详细解决方案

请教安卓开发中的onSaveInstanceState方法的调用时机的理解

热度:49   发布时间:2016-05-01 22:18:34.0
请问安卓开发中的onSaveInstanceState方法的调用时机的理解
小弟目前学习安卓开发,其中遇到这样的问题,它是当当activity不在用户主观destory的情况下被系统destory时调用的(说的有点绕口,大家都理解,嘿嘿),所以我在自己的手机上测试了一下,其中这段代码:
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  txt=(EditText)findViewById(R.id.edt);
if(null!=savedInstanceState&&savedInstanceState.containsKey(CONTENT)){
txt.setText(savedInstanceState.getString(CONTENT));
} Log.i(TAG, "Activity1 create");
  secondbtn=(Button)findViewById(R.id.secondbtn);
  secondbtn.setOnClickListener(listener);
  thirdbtn=(Button)findViewById(R.id.thirdbtn);
  thirdbtn.setOnClickListener(listener);
 
  }
  protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG, "Activity1 onSaveInstanceState");
String content=txt.getText().toString();
outState.putString(CONTENT, content);
}主要是用来保存当前EditText的内容并当acivity重启时恢复状态,如果没有这段红色代码,我测试当手机横屏然后恢复竖屏按理说应该不能保留原来在EditText中输入的文字了,但是文字依然保留,请问这是为什么呢?

------解决方案--------------------
在AndroidManifest.xml中的Activity中定义了 android:configChanges="orientation|keyboardHidden"

这个在横竖屏切换的时候不销毁Activity,所以不会调用onCreate