본문 바로가기

IT/Android

[Android] 인텐트 필터(intent filter)란?

묵시적 인텐트로 앱 컴포넌트를 실행하기 위해 알아야 하는 사전 지식이 인텐트 필터입니다. 이번 포스트에서는 인텐트 필터에 대해 정리해 보고자 합니다.

 

 

인텐트 필터(Intent Filter)


 인텐트 필터는 앱 컴포넌트가 받고자 하는 인텐트가 무엇인지를 정하는 수단입니다. 명시적 인텐트에는 무엇을 실행할지가 명확합니다. 클래스 이름이 설정되어 있으니까요. 그러나 묵시적 인텐트는 클래스 이름 대신 액션 이름이 설정됩니다. 액션 이름만으로는 어떤 앱 컴포넌트를 실행할지가 명확하지 않지요. 앱 컴포넌트는 인텐트 필터를 가질 수 있고, 안드로이드는 인텐트 필터를 이용하여 어떤 앱 컴포넌트에 암시적 인텐트를 전달할지를 결정할 수 있습니다.

 

 

묵시적 인텐트를 이용하여 앱 컴포넌트를 실행하는 과정

 

1. 한 앱 컴포넌트가 액션 값이 A인 묵시적 인텐트를 안드로이드에 보냅니다.


2. 안드로이드는 액션 값이 A인 인텐트 필터를 갖는 앱 컴포넌트를 찾습니다.


3. 액션 값이 일치하는 인텐트 필터를 갖는 앱 컴포넌트가 1개 발견되면, 안드로이드는 그것을 실행하고 묵시적 인텐트를 전달합니다.


4. 만약 앱 컴포넌트가 2개 이상 발견되면, 안드로이드는 사용자에게 어떤 것을 실행할 것인지를 묻습니다. (액티비티의 경우)