본문 바로가기
안드로이드/개념

Intent 알아보기

by 코드 이야기 2023. 6. 15.
728x90

 

Intent란?

  • 영어 단어적 의미: 목표, 목적, 의지
  • 안드로이드 공식 문서: 
    메시징 객체. 다른 Component로 작업을 요청하는 데 사용.
    인텐트가 Component 간 통신을 촉진하는 데는 여러 방식이 있지만 기본적인 사용 사례는 크게 세 가지로 나눌 수 있습니다.
    (액티비티/서비스 시작, 브로드캐스트 전달 등)

즉, Component를 실행하기 위해 시스템에 넘기는 정보.

Component(Content provider 제외) 간의 작업 수행을 위한 정보를 전달하는 역할.

 

Intent의 유형과 그에 따른 실행 과정

Explicit intents (명시적 인텐트)

  • 실행하고자 하는 컴포넌트의 클래스명을 Intent에 담아 명시하는 방법.
  • 주로 동일 앱에서 다른 Component를 실행시킬 때 사용.
    작업을 요청할 정확한 대상(액티비티, 서비스 등의 클래스)의 이름을 알고 있기 때문.
  • ex. 새로운 액티비티(화면 등)를 시작할 때, 알림을 예약할 때, 백그라운드에서 파일을 다운로드하기 위해 서비스를 시작할 때, ...

Implicit intents (암시적 인텐트)

  • 실행하고자 하는 Component의 이름(클래스명)을 명시하지 않는 방법.
  • 주로 다른 응용 프로그램의 Component를 호출할 때 사용.
    작업을 요청할 정확한 대상의 이름을 모르기 때문. 일반적인 작업을 선언해 다른 앱의 Component가 일을 처리할 수 있도록 한다.
  • ex. 인터넷에 접속해 특정 링크를 실행시킨다.(인터넷을 실행해 링크를 열 수 있는 앱 전부에 요청한다. 크롬, 삼성 인터넷 등), 
    특정 사진을 공유한다.(인스타, 카톡, 슬랙 등), ...

실행 과정

명시적으로 Activity를 실행할 때의 과정

  • 명시적으로 Activity를 실행할 때
    시스템이 즉시 해당 Component를 시작.
  • 암시적으로 intent를 사용할 때
    시스템이 앱의 
    매니페스트에 선언되어 있는 인텐트 필터를 사용해 인텐트에 담긴 일을 수행 가능한지 판단 후 실행.
  •  인텐트 필터: 해당 구성 요소가 수신하고자 하는 인텐트의 유형을 나타내는 것

 


참고

https://developer.android.com/reference/android/content/Intent

https://developer.android.com/guide/components/intents-filters?hl=ko 

https://www.crocus.co.kr/1521

 

 


추가로 정리해야 할 내용

Building an intent (인텐트 빌드) 

더보기
  • Intent 객체에는 Android 시스템이 어떤 Component를 시작할지 판별하는 데 사용하는 정보가 담겨 있다.
    ex. 정확한 Component 이름(Activity 클래스명 등) 또는 인텐트를 수신해야 하는 구성 요소 카테고리 등.
  • 수신 Component가 작업을 적절히 수행하기 위해 사용할 정보(예: 수행할 작업 및 조치를 취할 데이터 위치 등)도 담겨 있다.

PendingIntent

...

 

 

728x90

'안드로이드 > 개념' 카테고리의 다른 글

[android] Activity Lifecycle  (0) 2021.06.08

댓글