필터에는 Intent 개체의 작업, 데이터 및 범주 필드를 병렬로 하는 필드가 있습니다. 암시적 의도는 세 영역 모두의 필터에 대해 테스트됩니다. 필터를 소유한 구성 요소로 전달하려면 세 가지 테스트를 모두 통과해야 합니다. 그 중 하나라도 실패하면 Android 시스템은 적어도 해당 필터를 기반으로 구성 요소에 제공하지 않습니다. 그러나 구성 요소에여러 의도 필터가 있을 수 있으므로 구성 요소의 필터 중 하나를 통과하지 않는 의도는 다른 의도에서 통과할 수 있습니다. 다음 예제는 위의 예제의 수정입니다. 여기서는 Android가 에 정의된 두 가지 활동을 호출하는 경우 Android가 충돌을 해결하는 방법을 볼 수 있으며 다음에 필터를 사용하여 사용자 지정 활동을 호출하는 방법과 Android가 의도에 대해 정의된 적절한 활동을 제출하지 않는 경우 세 번째 활동은 예외 사례입니다. 이제 우리는 다시 (뒤로 버튼 또는 ESC) 가서 우리는 SMS_INTENT와 두 번째 버튼을 보내기 를 눌러하려고합니다. 필터는 AndroidManifest.xml 파일에 적용하기 때문에 사용자 지정 활동이 시작됩니다. 따라서 아래 이미지와 같이 데이터와 엑스트라가 화면에 표시됩니다. 또 다른 일반적인 구성은 구성표와 데이터 형식이 있는 필터입니다. 예를 들어 다음과 같은 요소는 Android에서 작업을 수행하기 위해 네트워크에서 비디오 데이터를 검색할 수 있음을 알려줍니다.

브로드캐스트수신기 클래스입니다. 이 설정이 설정되면 Intent 개체는 지정된 클래스의 인스턴스에 전달되며, 그렇지 않으면 Android는 Intent 개체의 다른 정보를 사용하여 적절한 대상을 찾습니다. Intent 개체의 작업은 setAction() 메서드에 의해 설정하고 getAction()에 의해 읽을 수 있습니다. 예를 들어 웹에서 파일을 다운로드하도록 설계된 DownloadService라는 앱에서 서비스를 빌드한 경우 다음과 같은 코드로 시작할 수 있습니다. 앱에 연결합니다. 명시적 의도를 만들려면 Intent 개체의 구성 요소 이름을 정의합니다. 예제에서 볼 수 있듯이 Intent 개체는 단일 작업만 이름을 지정하지만 필터는 두 개 이상의 작업을 나열할 수 있습니다.

Catégories :