Published 2010. 5. 26. 13:13
[ 인텐트 ]
어플리케이션의 핵샘 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버)는 인텐트라 불리는 메시지를 통해서 활성화 됩니다. 인텐트 메세지는 동일 어플리케이션 내에 존재하는 컴포넌트 또는 다른 어플리케이션 내에 존재하는 컴포넌트들 간의 런타임 바인딩을 위한 도구입니다. 
인텐트 오브젝트는 "하나의 정보 묶음" 이라 할 수 있습니다. 인텐트를 수신하게 되는 컴포넌트가 관심을 갖는 정보와 안드로이드 시스템에 대한 추가적인 정보를 포함하고 있습니다. 
추가적인 정보는 컴포넌트 이름(Component name), 액션(Action), 데이터(Data), 카테고리(Category), 엑스트라(Extras), 플래그(Flags) 입니다.
명시적인(Explicit) 인텐트는 타켓 컴포넌트를 그것의 이름으로 지정합니다. 컴포넌트 이름은 일반적으로 다른 어플리케이션의 개발자에게 알려질 수 없는 사항으로 명시적인 인텐트는 전형적으로 어플리케이션 내부 메시지들을 위해 사용 됩니다. 
암시적인(Implicit) 인텐트는 타켓 이름을 지정하지 않습니다. 암시적인 인텐트는 다른 어플리케이션의 컴포넌트를 활성화하기 위해 자주 사용 됩니다.

[ 인텐트 필터 ]
시스템에서 액티비티, 서비스, 브로드캐스트 리시버가 처리할 수 있는 암시적 인텐트들이 어떤 것인가를 알려주기 위해 하나 이상의 인텐트 필터를 가질 수 있습니다. 각각의 필터는 컴포넌트의 처리능력, 즉 컴포넌트가 수신하고자 하는 인텐트들의 집합을 기술 합니다. 
인텐트 필터는 IntentFilter 클래스에 대한 하나의 인스턴스입니다. 하지만 안드로이드 시스템은 해당 컴포넌트를 실행하기 전에 컴포넌트의 기능에 대해 알아야 하기 때문에 인텐트 필터는 일반적으로 Java 코드 내부가 아닌, 어플리케이션의 매니페스트 파일인 AndroidManifest.xml의<intent-filter>애트리뷰트를 사용해서 정의 됩니다.


복사했습니다!