1. 의도란 무엇인가?
Android 개발자 설명서의 의도 및 의도 필터 페이지에는 다음과 같이 명시되어 있습니다.
의도는 다른 앱 구성 요소에서 작업을 요청하는 데 사용할 수 있는 메시징 개체입니다.
즉, 다른 활동이나 서비스를 시작하기 위해 의도가 전송됩니다. 소식또는 Android 시스템에서 발생하는 이벤트를 앱에 알리는 브로드캐스트를 제공합니다. 소식설명할 수 있습니다.
2. 의도 유형
의도에는 두 가지 유형이 있습니다.
- 의도를 표현하다
특정 앱 구성 요소를 시작하는 데 사용되는 의도입니다. B. 앱 내의 특정 활동 또는 서비스. 이렇게 하려면 앱의 패키지 이름 또는 구성 요소의 클래스 이름을 지정합니다. 따라서 새로운 활동을 시작하거나 서비스를 시작하는 것과 같이 백그라운드에서 파일을 다운로드하려는 명시적인 의도에 해당합니다.
- 묵시적 의도
다른 앱의 구성 요소가 처리할 수 있도록 공통 작업을 선언하는 데 사용하는 인텐트입니다. 암시적 의도는 빌드 중인 앱이 특정 작업을 처리할 수 없지만 다른 앱은 처리할 수 있거나 사용자가 사용할 앱을 선택하도록 하려는 경우에 사용됩니다.
Intent 객체에 포함된 기본 사항은 구성 요소 이름, 작업, 데이터, 범주, 추가 항목 및 플래그이며 그 의미는 Android 개발자 문서에 설명되어 있습니다. 인텐트 및 인텐트 필터 > 인텐트 빌드그것에 설명되어 있습니다
3. 의도 필터란 무엇입니까?
인텐트 필터는 앱의 매니페스트 파일에 포함된 표현식입니다. 앱의 구성 요소가 수신하려는 의도의 유형입니다.쇼
의도 필터를 사용하는 예는 암시적 의도입니다.
특정 구성 요소의 이름(앱의 패키지 이름 또는 앱의 구성 요소)을 알고 있기 때문에 명시적 인텐트의 경우 메시지를 보내야 하는지 여부를 알지 못한 채 해당 개체에 즉시 메시지를 보낼 수 있습니다. 보낼 구성 요소에 대한 메시지입니다.
메시지를 보낼 구성 요소를 알기 위해 암시적 의도를 의도 필터의 여러 의도와 비교할 수 있습니다. 이 경우 호환되는 인텐트 필터가 여러 개 있으면 사용자가 사용할 앱을 선택할 수 있습니다.

위의 그림은 활동 A가 암시적 의도로 활동 B를 시작하는 프로세스를 보여줍니다.
활동 A가 활동을 설명하는 인텐트를 생성하고 이를 startActivity()에 전달하면(1) Android 시스템은 일치하는 앱의 모든 매니페스트 파일에서 인텐트 필터를 검색합니다(2). 일치 항목이 발견되면 Android 시스템은 활동의 onCreate() 메서드를 호출하고 인텐트에 전달한 다음 활동 B를 시작할 수 있습니다(3).
4. 인텐트 필터 생성 방법
위의 예에서 볼 수 있듯이 앱 구성 요소가 수행할 수 있는 작업에 대해 별도의 인텐트 필터를 생성해야 다른 앱 또는 구성 요소가 인텐트를 제공할 수 있습니다.
인텐트 필터는 다음 사이에 있습니다.
name 속성에서 허용된 의도된 작업을 선언합니다.
유효한 데이터 유형을 선언합니다.
name 속성에서 허용된 인텐트 카테고리를 선언합니다. 이 시점에서 암시적 인텐트를 가져오려면 CATEGORY_DEFAULT 카테고리가 인텐트 필터에 포함되어야 합니다.
3줄요약.
1. 의도는 다른 구성 요소로 전송되는 메시지입니다.
2. 인텐트는 명시적 인텐트와 암시적 인텐트로 구분되며 암시적 인텐트는 인텐트 필터를 사용합니다.
3. 인텐트 필터는 사용자가 실행할 수 있는 인텐트를 찾기 위해 지정된 필터입니다.