인텐트(Intent)
컴포넌트에 액션, 데이터 등을 전달하는 메시지 객체
(다른 액티비티를 띄우거나 동작시키기 위한 수단)
인텐트를 사용하면 애플리케이션 구성 요소 간에
데이터를 전달하거나 실행하려는 기능이 무엇인지
안드로이드 플랫폼에 알려줄 수 있다
안드로이드 플랫폼에게 원하는 것을 말할 때 전달하는 우편물 같은 것
인텐트 유형
- 명시적 인텐트(Explicit Intent)
인텐트에 클래스 객체나 컴포넌트 이름을 지정하여
호출할 대상을 확실히 알 수 있는 경우
-암시적 인텐트(Implicit intent)
액션과 데이터를 지정하긴 했지만
호출할 대상이 달라질 수 있는 경우
MIME 타입에 따라 시스템에서
적절한 다른 앱의 액티비티를 찾은 후 띄우는 방식 사용
인텐트 구성 요소
Action
수행할 액션 이름(ACTION_DIAL), 수행할 기능
Data
액션이 수행될 대상의 데이터
해당 데이터의 MIME유형을 참조하는 Uri객체
데이터 URI만 설정하려면 setdata() 호출,
MIME유형만 설정하려면 setType()을 호출
두 가지 모두 명시적으로 설정할 경우 setDataAndType()을 사용
Category
수행할 액션에 대한 추가적인 정보
Type
수행할 인텐트 데이터의 명시적인 타입
(MIME 타입)
Component Name
인텐트에 사용될 컴포넌트 이름
컴포넌트 이름을 설정하는 방법은
setComponent(), setClass(), setClassName()
또는 인텐트 생성자가 있다
Flags
인텐트에 대한 메타데이터 같은 기능을 함
액티비티를 시작하는 방법에 대해 명시할 수도 있고
액티비티를 시작한 다음 어떻게
처리해야 할지도 명시할 수 있다
Extras(추가 정보)
인텐트를 다루는 컴포넌트에
추가적으로 전달할 한 쌍의 키/값
인텐트 필터(IntentFilter)
특정 인텐트를 받을지 말지를 정의하는 역할을 수행
이를 통해 컴포넌트의 특징이 정해짐
암시적 인텐트를 통해 사용자로 하여금
어느 앱을 사용할지 선택하도록 할 때
인텐트 필터가 필요하다
'Programming > Android' 카테고리의 다른 글
Android - 안드로이드 4대 컴포넌트(구성 요소) (0) | 2022.03.25 |
---|