归结为拯救一个州,我很困惑.所以我知道onSaveInstanceState(Bundle)当活动即将被销毁时会被调用.但是,如何将信息存储在其中并将其恢复到原始状态onCreate(Bundle savedInstanceState)?我不明白这个捆绑包将如何恢复信息.如果有人可以提供一个例子,那将会很有帮助.开发指南没有很好地解释这一点.
public class Conversation extends Activity {
private ProgressDialog progDialog;
int typeBar;
TextView text1;
EditText edit;
Button respond;
private String name;
private String textAtView;
private String savedName;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.dorothydialog);
text1 = (TextView)findViewById(R.id.dialog);
edit = (EditText)findViewById(R.id.repsond);
respond = (Button)findViewById(R.id.button01);
if(savedInstanceState != null){
savedInstanceState.get(savedName);
text1.setText(savedName);
}
else{
text1.setText("Hello! What is your name?");
respond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
name = edit.getText().toString();
text1.setText("Nice to meet you "+ name);
}
});
} …Run Code Online (Sandbox Code Playgroud) 下图(来自官方文档)描述了Android活动的众所周知的生命周期:

在另一方面,当活动是由系统(例如,由于存储器需要被回收的)破坏,该活动的状态有时自动地保存和恢复由所述方法的装置onSaveInstanceState()和onRestoreInstanceState()由下图所示(也来自官方文件):

我知道,onSaveInstanceState()是不是总叫当活动即将被销毁.例如,如果由于用户按下"后退"按钮而导致销毁,则不会保留活动状态.但是在状态被保存并恢复和onSaveInstanceState()/ onRestoreInstanceState()被调用的情况下,它们究竟何时被调用?
例如,根据上面的图,onRestoreInstanceState()可以在之前onStart(),之后onStart()但之前onResume()或之后调用onResume().同样,存在几种可能性onSaveInstanceState().那他们什么时候打电话呢?
理想情况下,我希望看到一个组合图,显示活动生命周期状态和保存/恢复方法(如果存在).