반응형
Intent 와 Inflate
1. Intent 란?
Intent란 어떤 메시지를 담고 있는 하나의 객체이다.
이 메세지는 어떤 액티비티로 이동할지, 어떤 서비스를 시작할지 등 목적지 정보를 갖고 있거나 옮겨야 하는 데이터를 갖고 있을 수도 있다.
기본 사용 사례는 크게 3개로 나눌 수 있다.
1. 1 Intent 기본 사용 사례
- 액티비티 시작 : 액티비티의 새 인스턴스를 시작하려면 인텐트를 startActivity()로 전달하면된다. 인텐트는 시작할 액티비티를 설명하고 모든 필수 데이터를 담는다.
- 서비스 시작 : 서비스를 시작해 1회성 작업(파일 다운로드 등)을 수행하게 하려면 인텐트를 startService()에 전달하면 된다. 인텐트는 시작할 서비스를 설명하고 모든 필수 데이터를 담고 있다. 서비스가 클라이언트-서버 인터페이스로 디자인된 경우 다른 구성요소로부터 서비스에 바인딩하려면 인텐트를 bindService()에 전달하면 된다.
- 브로드캐스트 전달 : 브로드캐스트는 모든 앱이 수신할 수 있는 메시지다. 시스템은 시스템이 부팅될 때 또는 기기가 충전을 시작할 때 등 시스템 이벤트에 대한 다양한 브로드캐스트를 전달한다. 인텐트를 sendBroadcast() 또는 sendOrderedBroadcast()에 전달하면 다른 앱에 브로드캐스트를 전달할 수 있다.
1. 2 Intent 유형
- 명시적 인텐트 : 인텐트를 충족하는 앱이 뭔지 지정한다. 이를 위해 대상 앱의 패키지명 또는 구성 요소 클래스 이름을 제공한다. 일반적으로 앱 안에서 컴포넌트를 시작할 때 쓴다. 시작하려는 액티비티 또는 서비스의 클래스명을 알고 있기 때문이다.
- 암시적 인텐트 : 특정 컴포넌트의 이름을 대지 않지만, 대신 수행할 일반적인 작업을 선언해 다른 앱의 컴포넌트가 이를 처리할 수 있도록 해준다. 사용자에게 지도의 한 위치를 표시하고자 하는 경우 암시적 인텐트를 써서 해당 기능을 갖춘 다른 앱이 지정된 위치를 지도에 표시하도록 요청할 수 있다.
2. Inflate
Inflate란 사전적 정의로는 “부풀리다, 올리다” 라는 의미를 가지고 있다.
안드로이드에서 Inflate는 xml에 표기된 레이아웃들을 메모리에 객체화 시키는 과정이다.
쉽게 말해서, XML 코드들을 객체화 해서 코드에서 사용하기 위함이다.
setContentView()함수가 XML을 객체화시키는 Inflate 동작이다.
반응형
'안드로이드(Kotlin)' 카테고리의 다른 글
Kotlin 코틀린의 Context (0) | 2022.08.08 |
---|---|
Kotlin 코틀린의 Handler 와 Looper (0) | 2022.08.04 |
Kotlin 코틀린의 Layout (0) | 2022.08.04 |
Kotlin 코틀린의 Lifecycle (0) | 2022.08.03 |
Kotlin 코틀린의 ViewModel (0) | 2022.08.03 |