인텐트는 어떠한 액션이 수행되어야 한다는 의향을 선언 할 수 있도록 해주는 메시지 전달 메커니즘이다. 새 액티비티를 시작(명시적,암시적), 시스템 전 역에 메시지 방송, 인터넷 연결 상태나 배터리 충전수준의 변화 같은 시스템 이벤트 알림 등에 사용된다.
출처 : 프로페셔널 안드로이드 책
인텐트intent는 기기 내부를 쭉 훑으면서 특정 이벤트가 발생했다는 사실을 각 애플리케이션에 알려주는 시스템 메시지다. 예를 들어 하드웨어 상태가 변경되거나(사용자가 SD카드를 삽입하는 등), 외부에서 데이터를 수신하거나(SMS 문자 메시지를 수신하는 등), 특정 애플리케이션에서 발생하는 이벤트(사용자가 메뉴에서 특정 액티비티를 실행하는 등)를 모두 포함한다. 각 애플리케이션은 인텐트에 대응할 수 있을 뿐만 아니라, 인텐트를 생성해 다른 액티비티를 실행하거나 , 아니면 특정 조건에 해당하는 상황(예를 들어 지도상에 지정한 지점에서 반경 100m 이내로 이동해 들어갔는지 등)인지를 확인할 수도 있다.
안드로이드 시스템은 다수의 컴포넌트가 서로 독립적인 형태를 유지하면서 서로 연결되는 구조를 띤다. 일반 데스크탑용 GUI화면에서 대화 상자나 윈도우등을 띄워 사용하던 기법은 안드로이드 내에서 대부분 독립적인 모듈로 구성하는 경우가 많다. 특정 액티비티가 '특별한' 속성을 갖고 있어 런처에 노출되 사용자가 직접 실행할 수 있었다면, 런처에 나타나지 않는 특별하지 않은 액티비티를 실행할 방법 역시 있어야 한다.
이 방법이 바로 인텐트intent다.
인텐트는 기본적으로 안드로이드 시스템에게 '이런 저런 일을 해줘!'라고 요청하는 메시지다. '이런저런' 일은 상황에 따라 다른데, 해야 할 일을 명확하게 알고 요청할 때도 있지만 명확하게 알지 못하고 요청하는 경우도 있다.
출처 : 알짜만 골라 배우는 안드로이드 프로그래밍
어플리케이션이 한 가지의 액티비티만으로 이루어지는 경우는 거의 없습니다, 대부분 여러개의 액티비티, 서비스 등으로 구성되어 각 컴포넌트들을 호출하여 필요한 작업을 수행하는 구조를 이루고 있죠. 당장 주소록 어플리케이션만 해도 저장된 사람들을 보여주는 액티비티, 새 주소록을 추가하는 액티비티 등 여러 가지의 액티비티로 구성되어 있습니다.
어떤 컴포넌트에서 다른 컴포넌트를 호출하려면 "다른 컴포넌트를 호출하고 싶다"는 의사표현을 해야 합니다. 의사표현을 하려면 공통된 규약에 맞춰 이야기를 해야 합니다. 한 국가에서 하나의 언어를 사용하여 의사소통을 하는 것과 동일하죠.
안드로이드에서는 이러한 "의사표현"의 수단으로 인텐트 객체를 사용합니다.
안드로이드에서 '인텐트'라 하면 일반적으로 인텐트 객체를 뜻합니다. 인텐트 객체는 안드로이드 어플리케이션 내의 컴포넌트를 호출하기 위한 여러 정보들을 담고 있으며, 이 정보들에는 호출 대상 컴포넌트의 이름이 명시되어 있을 수도 있고, 혹은 호출 대상 컴포넌트의 특성만 나열되어 있을 수도 있습니다. 또한, 어플리케이션 호출 외에도 호출된 액티비티가 자신을 호출한 액티비티에게 결과값 등을 전달할 때에도 인텐트 객체에 데이터를 담아 전달합니다. 인텐트 객체는 마치 물건을 전달해주는 "택배회사"와 유사하다고 볼 수 있습니다. :)
이러한 인텐트를 종류별로 분류해보면, 호출 대상 컴포넌트의 이름이 명시되어 있는 인텐트, 즉 어떤 것을 호출해야 할지 명시되어 있는 인텐트를 명시적 인텐트(Explicit Intent), 라 하고, 호출 대상 컴포넌트가 정확히 정해진 것이 아니라 호출 대상 컴포넌트의 특성만 나열되어 있는 인텐트를 암시적 인텐트(Implicit Intent)라 합니다.
출처 : http://androidhuman.tistory.com/entry/어플리케이션-컴포넌트의-실행-인텐트Intent
출처 : 프로페셔널 안드로이드 책
인텐트intent는 기기 내부를 쭉 훑으면서 특정 이벤트가 발생했다는 사실을 각 애플리케이션에 알려주는 시스템 메시지다. 예를 들어 하드웨어 상태가 변경되거나(사용자가 SD카드를 삽입하는 등), 외부에서 데이터를 수신하거나(SMS 문자 메시지를 수신하는 등), 특정 애플리케이션에서 발생하는 이벤트(사용자가 메뉴에서 특정 액티비티를 실행하는 등)를 모두 포함한다. 각 애플리케이션은 인텐트에 대응할 수 있을 뿐만 아니라, 인텐트를 생성해 다른 액티비티를 실행하거나 , 아니면 특정 조건에 해당하는 상황(예를 들어 지도상에 지정한 지점에서 반경 100m 이내로 이동해 들어갔는지 등)인지를 확인할 수도 있다.
안드로이드 시스템은 다수의 컴포넌트가 서로 독립적인 형태를 유지하면서 서로 연결되는 구조를 띤다. 일반 데스크탑용 GUI화면에서 대화 상자나 윈도우등을 띄워 사용하던 기법은 안드로이드 내에서 대부분 독립적인 모듈로 구성하는 경우가 많다. 특정 액티비티가 '특별한' 속성을 갖고 있어 런처에 노출되 사용자가 직접 실행할 수 있었다면, 런처에 나타나지 않는 특별하지 않은 액티비티를 실행할 방법 역시 있어야 한다.
이 방법이 바로 인텐트intent다.
인텐트는 기본적으로 안드로이드 시스템에게 '이런 저런 일을 해줘!'라고 요청하는 메시지다. '이런저런' 일은 상황에 따라 다른데, 해야 할 일을 명확하게 알고 요청할 때도 있지만 명확하게 알지 못하고 요청하는 경우도 있다.
출처 : 알짜만 골라 배우는 안드로이드 프로그래밍
어플리케이션이 한 가지의 액티비티만으로 이루어지는 경우는 거의 없습니다, 대부분 여러개의 액티비티, 서비스 등으로 구성되어 각 컴포넌트들을 호출하여 필요한 작업을 수행하는 구조를 이루고 있죠. 당장 주소록 어플리케이션만 해도 저장된 사람들을 보여주는 액티비티, 새 주소록을 추가하는 액티비티 등 여러 가지의 액티비티로 구성되어 있습니다.
어떤 컴포넌트에서 다른 컴포넌트를 호출하려면 "다른 컴포넌트를 호출하고 싶다"는 의사표현을 해야 합니다. 의사표현을 하려면 공통된 규약에 맞춰 이야기를 해야 합니다. 한 국가에서 하나의 언어를 사용하여 의사소통을 하는 것과 동일하죠.
안드로이드에서는 이러한 "의사표현"의 수단으로 인텐트 객체를 사용합니다.
안드로이드에서 '인텐트'라 하면 일반적으로 인텐트 객체를 뜻합니다. 인텐트 객체는 안드로이드 어플리케이션 내의 컴포넌트를 호출하기 위한 여러 정보들을 담고 있으며, 이 정보들에는 호출 대상 컴포넌트의 이름이 명시되어 있을 수도 있고, 혹은 호출 대상 컴포넌트의 특성만 나열되어 있을 수도 있습니다. 또한, 어플리케이션 호출 외에도 호출된 액티비티가 자신을 호출한 액티비티에게 결과값 등을 전달할 때에도 인텐트 객체에 데이터를 담아 전달합니다. 인텐트 객체는 마치 물건을 전달해주는 "택배회사"와 유사하다고 볼 수 있습니다. :)
이러한 인텐트를 종류별로 분류해보면, 호출 대상 컴포넌트의 이름이 명시되어 있는 인텐트, 즉 어떤 것을 호출해야 할지 명시되어 있는 인텐트를 명시적 인텐트(Explicit Intent), 라 하고, 호출 대상 컴포넌트가 정확히 정해진 것이 아니라 호출 대상 컴포넌트의 특성만 나열되어 있는 인텐트를 암시적 인텐트(Implicit Intent)라 합니다.
출처 : http://androidhuman.tistory.com/entry/어플리케이션-컴포넌트의-실행-인텐트Intent

최근 덧글