Intent 는 메시징 객체로, 다른 app 구성 요소(component)에게 작업을 요청하는데 사용할 수 있다.
Intent 에는 두 가지 유형이 있다.
명시적 인텐트는 다음에 수행할 컴포넌트의 이름을 명확하게 제시한다.
보통은 App 내에 있는 component를 실행할 때 사용한다.
인텐트로 Activity A 에서 B로 전환하는 과정
암시적 인텐트는 구체적인 component의 이름을 제시하지 않는다.
대신에, 이 인텐트에 어떤 동작을 수행할지 선언한다.
이 것을 통해서 이 동작을 수행할 수 있는 다른 app에게 작업을 수행할 것을 요청한다.
암시적 인텐트를 사용하면, 안드로이드 시스템은 다른 app들에 있는 manifest의 intent filter 를 참조해서 인텐트에 담긴 작업을 수행할 수 있는 component 들을 찾아 내서 사용자에게 어떤 app을 사용해서 작업을 수행할지 선택지를 준다.
** 주의
암시적 인텐트를 사용해서 Service 를 수행하면 안된다.
그 이유는 암시적 인텐트를 Service에 사용하게 되면 어떤 service 가 intent에 반응할지 알 수 없다.
안드로이드에서 activity를 호출하다보면 같은 activity가 중복되는 문제가 발생할 수 있는데 이것을 제어할 때 Flag를 사용한다.