[안드로이드] 인텐트
- 프로그래밍 정보
- 2010. 10. 13.
반응형
< 인텐트는 핵심 컴포넌트를 활성화 할 수 있는 열쇠 입니다 >
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
인텐트 ( Intent )
어플리케이션의 핵심 컴포넌트 ( 액티비티, 서비스, 브로드캐스트 리시버 ) 는 인텐트 라고 불리는 메시지를 통해서 활성화 됩니다. 인텐트는 동일한 어플리케이션의 컴포넌트 또는 다른 어플리케이션의 컴포넌트 간의 실행을 위한 도구입니다.
인텐트 , 즉 인텐트 객체는 처리되어야하는 작업에 대한 추상적인 설명을 보유하고 있는 데이터 구조인데요, 브로드캐스트의 경우 생성되어 방송되었던 것에 대한 표현이라고 볼 수 있겠습니다.
각각의 컴포넌트 타입에 따라 인텐트를 전달하는 별도의 방식이 존재합니다.
▶ 인텐트 객체는 액티비티 클래스를 실행하거나, 이미 존재하는 액티비티를 얻기 위해 Context.startActivity() 또는 Activity.startActivityForResult() 메소드에 전달되어 집니다.
( Activity.setResult() 메소드에 전달되어 startactivityForResult 를 호출했던 액티비티 정보를 리턴하도록 할 수도 있습니다 )
▶ 인텐트 객체는 서비스를 초기화하거나, 실행중인 서비스에게 새로운 것을 전달하기 위해 Context.startService() 메소드에 전달되어 집니다. 또한 호출하는 컴포넌트와 그것의 대상이 되는 서비스간의 연결을 위하여 Context.bindService() 메소드에 전달되지요. 만일 서비스가 아직 실행중이 아니라면, 필요에 따라 서비스를 초기화 할 수 있습니다.
▶ Context.sendBroadcast() , Context.sendOrderedBroadcast() , Context.sendStickyBroadcast() 메소드 등에 전달되는 인텐트 객체는, 그것을 듣고 있는 모든 브로드캐스트 리시버들에게 전달됩니다. 여기에서 안드로이드 시스템은 인텐트에 응답할 적절한 액티비티, 서비스, 브로드캐스트 리시버를 찾으며, 필요하다면 인스턴스화도 합니다.
( Activity.setResult() 메소드에 전달되어 startactivityForResult 를 호출했던 액티비티 정보를 리턴하도록 할 수도 있습니다 )
▶ 인텐트 객체는 서비스를 초기화하거나, 실행중인 서비스에게 새로운 것을 전달하기 위해 Context.startService() 메소드에 전달되어 집니다. 또한 호출하는 컴포넌트와 그것의 대상이 되는 서비스간의 연결을 위하여 Context.bindService() 메소드에 전달되지요. 만일 서비스가 아직 실행중이 아니라면, 필요에 따라 서비스를 초기화 할 수 있습니다.
▶ Context.sendBroadcast() , Context.sendOrderedBroadcast() , Context.sendStickyBroadcast() 메소드 등에 전달되는 인텐트 객체는, 그것을 듣고 있는 모든 브로드캐스트 리시버들에게 전달됩니다. 여기에서 안드로이드 시스템은 인텐트에 응답할 적절한 액티비티, 서비스, 브로드캐스트 리시버를 찾으며, 필요하다면 인스턴스화도 합니다.
중요한 점은 이러한 시스템에서 오버랩은 일어나지 않는다는 것입니다. 즉, 브로드캐스트 인텐트는 브로드캐스트 리시버에게만 전달되고 startActivity() 에 전달된 인텐트는 오직 하나의 액티비티에만 전달되며, 그 외 다른 것들에겐 전달되지 않음을 보장해 줍니다.
끝~~
관련글
반응형