본문 바로가기
안드로이드

[안드로이드] 개념 및 용어 정리 - 인텐트 intent

by keel_im 2020. 11. 18.
반응형

면접을 대비한 안드로이드 개념 및 용어 정리 

저의 언어로 구성하였습니다. 

인텐트

안드로이드를 구성하는 액티비티, 서비스, 브로드캐스트리시버, 콘텐트 프로바이더 간에 정보를 전달하는 역할을 하는 요소

포함 사항

Component Name

시작할 컴포넌트의 이름이다. 해당 인텐트가 명시적 인텐트인지, 암시적 인텐트인지 구분하는 중요한 요소이다.

명시적인지, 암시적 인지를 구분하는 요소이며 시작하는 컴포넌트 이름.

  • 명시적 인텐트 (Explicit Intent)
    이름을 지정하여 호출 대상을 알 수 있는 인텐트
  • 암시적 인텐트 (Implicit Intent)?
    특정 컴포넌트의 클래스명 없이 어떠한 작업을 수행하는 것인지만 선언하는 인텐트이다. 해당 인텐트를 처리할 수 있는 컴포넌트를 시스템이 필터링하여 수행하거나 사용자에게 선택하도록 한다.
    어떤 작업을 수행하는지를 선언한다. (Action 등으로) 

Action

수행 작업을 나타낸다. (클래스 안에 상수로 정의되어 있습니다. )

ex) 

val intent = Intent(Intent.ACTION_DIAL)

Data

작업 수행 데이터 및 데이터의 MIME를 참조하는 URI 객체

Category

수행 액션의 추가적인 정보

Extra

키/값 구조로 전달하는 정보

Flags

인텐트에 대한 메타데이터 같은 기능을 한다. 액티비티를 시작하는 방법에 대해 명시 할 수도있고, 액티비티를 시작한 다음 어떻게 처리해야 할지도 명시 할 수 있다. 백스택과도 연관이 있다. 

인텐트 필터

암시적 인텐트를 사용하여 수신을 하고자 한다면 인텐트 필터를 매니페스트 파일의 설정을 해야 한다.

예를 들어 사용자가 다른 사람들과 공유했으면 하는 콘텐츠를 가지고 있는 경우, "ACTION_SEND"라는 Action을 가진 인텐트를 생성한 다음 공유할 콘텐츠를 지정하는 Extra를 추가한다. 해당 인텐트로 startActivity를 호출하면 사용자가 어느 앱을 통해 콘텐츠를 공유할지 선택 가능하다.

스티키 인텐트

사용 후에도 계속 메모리에 있는 인텐트 sendStickyBroadcast() 로 전송한다.

스티키 인텐트를 이용하여 브로드 리시버를 등록순간 인텐트를 전달하여 상태를 확인 할 수 있다. 

펜딩 인텐트

펜딩 인텐트는 인텐트를 감쌀 수 있는 클래스이며 다른 앱(프로세스) 에 권한을 주어서 본인 앱에서 실행처럼 보여준다. Notification 케이스에서 사용할 수 있으며 알림바에서 인텐트를 실행하고 싶을 때는 펜딩 인텐트를 사용한다. 

반응형

댓글