관리 메뉴

나만을 위한 블로그

[Manifest-Android] 17. Bundle 본문

스터디

[Manifest-Android] 17. Bundle

참깨빵위에참깨빵_ 2025. 6. 30. 19:21
728x90
반응형

컴포넌트(액티비티, 프래그먼트, 서비스) 간 데이터 전달에 쓰이는 키밸류 데이터 구조. 앱에서 적은 데이터를 효율적으로 전송하는 데 쓰인다. 가벼운 구조로 설꼐되어 안드로이드가 데이터를 쉽게 관리, 전송할 수 있는 형식으로 시리얼화한다.

 

Bundle의 공통 사용 사례

 

  • 액티비티 간 데이터 전달 : 새 액티비티 시작 시 인텐트에 번들을 첨부해서 대상 액티비티에 데이터 전달
  • 프래그먼트 간 데이터 전달 : 프래그먼트 트랜잭션에서 setArguments, getArguments와 같이 쓰여서 프래그먼트 간 데이터 전달
  • 인스턴스 상태 저장, 복원 : onSaveInstanceState, onRestoreInstanceState 같은 생명주기 함수에서 구성 변경 시 임시 UI 상태를 저장, 복원 시 쓰임
  • 서비스에 데이터 전달 : 서비스를 시작하거나 bound service에 데이터 전달 시 번들로 데이터 전달

 

Bundle 작동 방식

 

키는 문자열이고 값은 원시 타입이다. Serializable, Parcelable 객체거나 다른 번들일 수 있다. 이 구조는 데이터의 효율적 저장, 전송을 가능하게 한다.

 

// Sending data from Activity A
val intent = Intent(this, ActivityB::class.java).apply {
    putExtra("user_name", "John Doe")
    putExtra("user_age", 25)
}
startActivity(intent)

// Receiving data in Activity B
val name = intent.getStringExtra("user_name")
val age = intent.getIntExtra("user_age", -1)

 

위 코드에서 데이터는 intent.putExtra()를 통해 내부적으로 번들에 패키징된다.

반응형
Comments