onCreate 메소드는 생성할때만 호출되는 것이 아닌, 화면을 다시 그려야할 때도 호출된다.
대표적으로 화면을 회전했을 경우가 있는데,
액티비티에서 화면 회전시
onPause() → onSaveInstanceState() → onStop() → onDestory() → onCreate() → onStart() → onResume()
의 순으로 호출된다.
onCreate는 호출될때마다 번들의 상태를 체크하고,
package org.techtown.savedinstancestate
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.PersistableBundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if(savedInstanceState != null){
textView.text = savedInstanceState.getString("TEST")
}
}
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("TEST","테스트")
super.onSaveInstanceState(outState)
}
}
onSaveInstanceState 에서 번들에 저장해놓은 값을
onCreate에서 불러와 텍스트를 변경해준다는 것을 알 수 있다.
github.com/HanYeop/AndroidStudio-Practice/tree/master/SavedInstanceState