안드로이드에서 intent가 뭔가요?

조회수 5706회

안드로이드에서 intent가 하는 역할이 뭔가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    어플리케이션이 한 가지의 액티비티만으로 이루어지는 경우는 거의 없습니다, 대부분 여러개의 액티비티, 서비스 등으로 구성되어 각 컴포넌트들을 호출하여 필요한 작업을 수행하는 구조를 이루고 있죠. 당장 주소록 어플리케이션만 해도 저장된 사람들을 보여주는 액티비티, 새 주소록을 추가하는 액티비티 등 여러 가지의 액티비티로 구성되어 있습니다.

    어떤 컴포넌트에서 다른 컴포넌트를 호출하려면 "다른 컴포넌트를 호출하고 싶다"는 의사표현을 해야 합니다. 의사표현을 하려면 공통된 규약에 맞춰 이야기를 해야 합니다. 한 국가에서 하나의 언어를 사용하여 의사소통을 하는 것과 동일하죠.

    안드로이드에서는 이러한 "의사표현"의 수단으로 인텐트 객체를 사용합니다.

    안드로이드에서 '인텐트'라 하면 일반적으로 인텐트 객체를 뜻합니다. 인텐트 객체는 안드로이드 어플리케이션 내의 컴포넌트를 호출하기 위한 여러 정보들을 담고 있으며, 이 정보들에는 호출 대상 컴포넌트의 이름이 명시되어 있을 수도 있고, 혹은 호출 대상 컴포넌트의 특성만 나열되어 있을 수도 있습니다. 또한, 어플리케이션 호출 외에도 호출된 액티비티가 자신을 호출한 액티비티에게 결과값 등을 전달할 때에도 인텐트 객체에 데이터를 담아 전달합니다. 인텐트 객체는 마치 물건을 전달해주는 "택배회사"와 유사하다고 볼 수 있습니다. :)

    이러한 인텐트를 종류별로 분류해보면, 호출 대상 컴포넌트의 이름이 명시되어 있는 인텐트, 즉 어떤 것을 호출해야 할지 명시되어 있는 인텐트를 명시적 인텐트(Explicit Intent), 라 하고, 호출 대상 컴포넌트가 정확히 정해진 것이 아니라 호출 대상 컴포넌트의 특성만 나열되어 있는 인텐트를 암시적 인텐트(Implicit Intent)라 합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)