首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onRestoreInstanceState不会被调用?

onRestoreInstanceState不会被调用?
EN

Stack Overflow用户
提问于 2012-03-30 15:37:10
回答 1查看 2.1K关注 0票数 0

我有一个简单的代码,我想知道在安卓程序执行过程中什么时候调用onRestoreInstanceState?

请帮帮我。

提前谢谢。

我的第一个活动如下

代码语言:javascript
复制
public class AbcActivity extends Activity {
Button b1;
EditText ed1;
Bundle b = new Bundle();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    Log.v("Tag", "inside oncreate");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    b1 = (Button) findViewById(R.id.button1);
    ed1 = (EditText) findViewById(R.id.editText1);

    b1.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(getApplicationContext(),
                    SecondActivity.class);
            startActivity(intent);
        }
    });
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    Log.v("Tag", "inside onsave instance state");

    outState.putString("key", ed1.getText().toString());
    super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    Log.v("Tag", "inside on restore instance state");
    super.onRestoreInstanceState(savedInstanceState);

    if (savedInstanceState != null) {
        Log.v("tag", "inside if");
        String str = savedInstanceState.getString("key");
        ed1.setText("" + str);
    }

}

}

我的第二个活动代码如下

代码语言:javascript
复制
public class SecondActivity extends Activity {
Button back;

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.v("Tag", "inside 2 oncreate");
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);

    back = (Button) findViewById(R.id.button1);

    back.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(getApplicationContext(),
                    AbcActivity.class);
            startActivity(intent);
        }
    });
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    Log.v("Tag", "inside 2 onsave instance state");
    super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    Log.v("Tag", "inside 2 on restore instance state");
    super.onRestoreInstanceState(savedInstanceState);
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-30 15:51:41

正如文档所述:

当从先前保存的状态重新初始化活动时,在onStart()之后调用此方法...此方法在onStart()onPostCreate(Bundle)之间调用

当您的Activity在被系统终止或配置更改后重新创建,并且它将其状态保存在onSaveInstanceState(Bundle)中时就是这种情况-在Activity被终止之前总是调用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9938795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档