When exactly are onSaveInstanceState() and onRestoreInstanceState() called?

前端 未结 5 1378
梦如初夏
梦如初夏 2020-11-28 20:14

The following figure (from the official doc) describes the well-known lifecycle of an Android activity:

5条回答
  •  抹茶落季
    2020-11-28 20:15

    String activityState;
    @Override 
    public void onCreate(Bundle savedInstanceState) {
    // call the super class onCreate to complete the creation of activity like 
    // the view hierarchy 
    super.onCreate(savedInstanceState);
    
    // recovering the instance state 
    if (savedInstanceState != null) {
         activityState = savedInstanceState.getString(STATE_KEY);
     } 
    
       setContentView(R.layout.main_activity);
       mTextView = (TextView) findViewById(R.id.text_view);
    } 
    

    //This callback is called only when there is a saved instance previously saved using //onSaveInstanceState(). We restore some state in onCreate() while we can optionally restore // other state here, possibly usable after onStart() has completed. // The savedInstanceState Bundle is same as the one used in onCreate().

    @Override 
    public void onRestoreInstanceState(Bundle savedInstanceState) {
     mTextView.setText(savedInstanceState.getString(STATE_KEY));
      } 
    
    
    // invoked when the activity may be temporarily destroyed, save the instance 
    //state here 
    //this method will be called before onstop
    
    @Override 
     public void onSaveInstanceState(Bundle outState) {
        outState.putString(STATE_KEY, activityState);
    
        // call superclass to save any view hierarchy 
        super.onSaveInstanceState(outState);
    } 
    

提交回复
热议问题