본문 바로가기
Android Studio

[Android Studio/안드로이드 스튜디오] Bundle/savedInstanceState 란 무엇일까?

by Alkaloid 2021. 4. 15.
반응형

onCreate를 보면 위와 같은 구조로 이루어져 있다.

Bundle은 뭐고 savedInstanceState란 무엇일까?

가장먼저 Bundle을 알아보겠다.

Bundle은 여러가지 타입을 저장하는 Map클래스이다.

내가 int를 사용하려면 Mapping 하여 Bundle클래스에 저장을 한다.

 

Android에서는 액티비티간 데이터를 주고받을때 Bundle클래스를 사용해 다양한 데이터를 전송한다.

기본적인 Bundle의 사용은 이러하다.

하지만 우리가 보고있는 코드는 onCreate안에서 savedInstanceState와 같이 쓰이고 있다.

액티비티를 생성하게 되면 ()안에 있는 객체를 가지고, 액티비티를 중단하게 되면 savedInstanceState메서드를 호출하여 데이터를 임시 저장한다. 그리고 다시 동작을 하게되면 저장된 데이터를 가지고 다시 액티비티를 생성한다.

 

우리는 핸드폰을 쓸때 가로모드와 세로모드를 사용할때 단순하게 화면이 돌아갈것이라고 생각하지만, 가로모드에서 세로모드로 전환시 onCreate함수가 다시 호출된다. 반대로 세로모드에서 가로모드 전환시에도 onCreate가 실행한다. 만약 어떤 데이터를 사용하다가 가로모드,세로모드 변환시  자신이 사용하고 있던 데이터를 유지해야할 경우가 생긴다.

 

이때 savedInstanceState를 사용하는 것이다.

반응형