小弟目前学习安卓开发,其中遇到这样的问题,它是当当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中输入的文字了,但是文字依然保留,请问这是为什么呢?

解决方案 »

  1.   

    在AndroidManifest.xml中的Activity中定义了 android:configChanges="orientation|keyboardHidden"这个在横竖屏切换的时候不销毁Activity,所以不会调用onCreate
      

  2.   

    我看了一下 在AndroidManifest.xml中没有  “android:configChanges="orientation|keyboardHidden"
    ”这句啊?这样切换屏幕时应该是销毁了当前的Activity,而我又没有添加上面红色标出的代码,为什么文本框中的内容仍然在呢?
      

  3.   

    你看看你是否进onCreate,如果不进,应该有地方设置了Activity不销毁