안드로이드 어플리케이션을 구성하는 네 가지 구성요소에는 Activity, Service, Broadcast Receiver, Content Provider가 있다.
Intent란 이러한 어플리케이션 구성요소간에 작업 수행을 위한 정보를 전달하는 역할을 한다.
명시적 인텐트와 암시적 인텐트
인텐트는 명시적 인텐트(Explicit Intent)와 암시적 인텐트(Implicit Intent)로 구분할 수 있다.
인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출될 대상을 확실히 알 수 있는 경우에는 명시적 인텐트가 필요하고 호출될 대상의 속성들을 지정했지만 호출될 대상이 달라질 수 있는 경우에는 암시적 인텐트가 필요하다.
명시적 인텐트
명시적 인텐트는 인텐트에 클래스 객체나 구성요소 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우에 사용한다.
명시적 인텐트 사용 예제
val intent = Intent(this, SubActivity::class.java)
startActivity(intent)
암시적 인텐트
암시적 인텐트는 실행할 구성요소가 달라질 수 있는 경우에 사용한다. 특정 구성 요소의 이름을 명시하지 않고 수행할 작업을 선언하여 다른 앱의 구성 요소가 이를 처리할 수 있도록 해준다.
예를 들면 ACTION_VIEW를 통해 데이터로 "http://"로 시작하는 문자열을 전달하였는데, 이를 실행할 컴포넌트(웹 브라우저)가 여러 개 있는 경우에 시스템이 암시적 인텐트를 받아 데이터의 포맷을 확인한 후 적절한 컴포넌트를 찾아 실행해준다.
'Programming > Android' 카테고리의 다른 글
[Android] Action Bar (0) | 2022.11.23 |
---|---|
[Android] Fragment (0) | 2022.11.23 |
[Android] Broadcast Receiver (0) | 2022.11.17 |
[Android] Service (0) | 2022.06.24 |
[Android] Conent Provider (0) | 2022.06.23 |