경험의 기록

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

 

HanYeop/AndroidStudio-Practice

AndroidStudio Practice. Contribute to HanYeop/AndroidStudio-Practice development by creating an account on GitHub.

github.com

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading