-
[Android] 기본적인 안드로이드 구조 및 용어 파악하기(2)Programming/Android 2020. 5. 21. 17:33
1. Intent(인텐트)
- 인텐트(Intent)란 이러한 어플리케이션 구성요소(컴포넌트)간에 작업 수행을 위한 정보를 전달하는 역할을 함
- 4대 컴포넌트끼리 유기적으로 정보전달을 가능케해주는 것
- 앱에서 무언가 작업을 수행하기 위해 사용하는 일종의 전달수단
- 내가 만든 액티비티나 애플리케이션의 구성요소개 해야할일을 지정 and 타 애플리케이션의 기능 수행
- 인텐트 기본 구성요소
--> 액션 (Action) : 수행할 기능
--> 데이터 (Data) : 액션이 수행될 대상 데이터
1-1 명시적 인텐트
- 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우에 사용
- 주로 애플리케이션 내부에서 사용
--> 사용하는 이유 : 특정 컴포넌트나 액티비티가 명확하게 실행되어야 할 경우
1-2 암시적 인텐트
- 인텐트의 액션과 데이터를 지정하긴 했지만, 호출한 대상이 달라질 수 있는 경우에는 암시적 인텐트 사용
- 설치된 애플리케이션들에 대한 정보를 알고 있는 안드로이드 시스템이 인텐트를 이용해 요청한 정보를 처리할 수 있는 적절한 컴포넌트를 찾아본 다음 사용자에게 그 대상과 처리 결과를 보여주는 과정을 거치게 됨
ex) 암시적 인텐트를 사용하는 대표적인 경우로 문서편집기
PDF를 파일 열기시 안드로이드 폰에 PDF를 편집하거나 보여줄 수 있는 애플리케이션이 내가 그 PDF파일을 보여줄 수 있다고 하는 경우 PDF를 열 수 있는 앱들이 이렇게 많은데 어떤거 선택할래? 라고 어플리케이션을 선택할 수 있는 위젯을 띄움 이런 일련의 과정을 가능케 하는 녀석이 암시적 인텐트
2. IntentFilter
- 암시적 인텐트를 통해 사용자로 하여금 어느 앱을 사용할지 선택하도록 하고자 할 때 필요
- 다른 사람들과 공유하고 싶은 컨텐츠를 가지고 있는 경우 ACTION_SEND라는 Action 있는 인텐트를 생성한 다음 공유할 컨텐츠를 지정하는 Extra를 추가하면 가능
- 해당 인텐트로 startActivity() 호출시 사용자가 어느 앱을 통해 컨텐츠 공유할지 선택 가능
3. IntentFlag
- 안드로이드에서 Activity 간의 이동이 아닌 Stack구조를 가지고 있는 task를 만날때, 이 Task를 어떻게 활용할지에 관한 것이 Flag
- Activity에 대해 중복 문제가 발생하는데 중복을 방지하거나 Activity에 대한 흐름을 제어하고 싶을 때 사용
-->Task : Stack 구조로 되어있고, 어플리케이션에서 실행되는 Activity를 보관하고 관리하는 역할 담당
REF)
https://limkydev.tistory.com/35
'Programming > Android' 카테고리의 다른 글
[Android] 레이아웃 (2) 2020.05.22 [Android] 기본적인 안드로이드 구조 및 용어 파악하기(1) (0) 2020.05.21