I am having a simple code where i want to know when does onRestoreInstanceState get called during program execution in android?
Please help me out.
Thanks in advance.
My first Activity is as follows
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);
}
}
}
my second activity code is as follows
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);
}
}
As the documentation states:
This is the case when your
Activityis re-created after being killed by the system or after a configuration change, and it saved its state inonSaveInstanceState(Bundle)– which is always called before anActivityis killed.