onRestoreInstanceStateの役割と処理

2019年5月16日

onSaveInstanceStateで保存したデータを読み出して設定する際にonRestoreInstanceStateを使用します。

従ってonRestoreInstanceStateはonSaveInstanceStateでBundleに保存したデータを、

読みだす際に利用するメソッドです。

 

 

callされるタイミング

明示的Intentで呼ばれ、Activityの状態を復元するとき。

 

Javaコード

下記のサンプルではonSaveInstanceStateでデータの保存を行い、onRestoreInstanceStateでデータの設定を行っています。

@Override
    public void onCreate(Bundle tBundle){
        super.onCreate( tBundle ) ;
        if( tBundle == null ){
            return ;
        }
  
        //データの復帰
        mBirthDay = tBundle.getString("BirthDay") ;
        mUserName = tBundle.getString("UserName") ;
    }
    @Override
    public void onSaveInstanceState( Bundle tBundle ){
        super.onSaveInstanceState( tBundle ) ;
        //データの保存
        tBundle.putString( "BirthDay", mBirthDay ) ;
        tBundle.putString( "UserName", mUserName ) ;
    }
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        //データの再設定
        tBundle.getString( "BirthDay", "19900101" ) ;
        tBundle.getString( "UserName", "hogehoge" ) ;
    }