小弟目前学习安卓开发,其中遇到这样的问题,它是当当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