Intent (1)
Intent?
각 component(Activity, Service, Broadcast receiver) 에서 특정 component 를 실행해 달라고 요청할 때 사용되는 정보로 일종의 메시지 객체.
- 필요한 activity or service 를 실행 할 때 사용.
- 특정 이벤트 발생을 다른 앱들에게 알릴 때 사용.
- Web browser 를 연동하거나 전화걸기 를 연동할 할 때 사용.
Intent 내용
Component 에서 특정 component 를 실행할 때 ActivityManager 에게 특정 component 를 실행해 달라고 요청하는데 이때 intent 를 사용하여 하단의 정보를 제공한다.
- 활성화 될 component 정보(이름)
- 활성화 될 component 에 전달할 데이터
Intent 전달
◼ Activity 시작
- startActivity
- startActivityForResult
◼ Service 시작
- startService
- bindService
◼ Broadcast 시작
- sendBroadcast
- sendOrderedBroadcast
- sendStickyBroadcast
Intent 유형
◼ 명시적 인텐트 (Explicit Intent)
일반적으로 본인의 앱 안에서 구성 요소를 시작할 때 쓰임.
(시작하고자 하는 액티비티 또는 서비스의 클래스 이름을 알고 있기 때문)
예를 들어, 사용자 작업에 응답하여 새 액티비티를 시작하거나 백그라운드에서 파일을 다운로드하기 위해 서비스를 시작하는 것 등이 여기에 해당.
[Android/Intent] - Intent (2) - Explicit(명시적) intent
◼ 암시적 인텐트 (Implicit Intent)
특정 구성 요소의 이름을 대지 않지만, 그 대신 수행할 일반적일 작업을 선언하여 또 다른 앱의 구성 요소가 이를 처리할 수 있도록 한다.
예를 들어, 사용자에게 지도에 있는 한 위치를 표시해주고자 하는 경우, 암시적 인텐트를 사용하여 다른, 해당 기능을 갖춘 앱이 지정된 위치를 지도에 표시하도록 요청할 수 있다.
[Android/Intent] - Intent (3) - Implicit(암시적) intent
◼ 보류 인텐트 (Pending Intent)
외부 애플리케이션에 내 권한을 허가해서 던잘하는 intent. Intent를 하나 생성한 후 특정 시점에 다른 component 들이 pending intent 를 사용하여 다른 component 에게 작업을 요청한다.
예를 들어, 사용자에게 지도에 있는 한 위치를 표시해주고자 하는 경우, 암시적 인텐트를 사용하여 다른, 해당 기능을 갖춘 앱이 지정된 위치를 지도에 표시하도록 요청할 수 있다.
[Android/Intent] - Intent (4) - Pending(보류) intent