[ 📌Intent가 Component 사이의 통신을 촉진하는 기본적인 사용 사례 ]
1️⃣ 액티비티 시작
- Activity는 앱 안의 단일 화면을 나타냄.
- Activity의 새 인스턴스를 시작하려면 Intent를 startActivity()로 전달
- Intent는 시작할 Activity를 설명하고 모든 필수 데이터를 담음.
- Activity가 완료되었을 때 결과를 수신하려면, startActivityForResult()를 호출
- Activity는 해당 결과를 이 Activity의 onActivityResult() 콜백에서 별도의 Intent 객체로 수신
2️⃣ 서비스 시작
- Service는 사용자 인터페이스 없이 백그라운드에서 작업을 수행하는 구성 요소
- Android 5.0(API 레벨 21) 이상부터는 JobScheduler로 서비스를 시작할 수 있음.
- Android 5.0(API 레벨 21) 이하 버전은 Service 클래스의 메서드를 사용하면 서비스를 시작할 수 있음.
- Service를 시작하여 일회성 작업을 수행하도록 하려면(예: 파일 다운로드) Intent를 startService()에 전달
- Intent는 시작할 Service를 설명하고 모든 필수 데이터를 담고 있습니다.
- Service가 클라이언트-서버 인터페이스로 디자인된 경우, 다른 Component로부터 Service에 바인딩하려면 Intent를 bindService()에 전달
3️⃣ 브로드캐스트 전달
- 브로드캐스트는 모든 앱이 수신할 수 있는 메시지
- 시스템은 시스템이 부팅될 때 또는 기기가 충전을 시작할 때 등 시스템 이벤트에 대한 다양한 브로드캐스트를 전달
- Intent를 sendBroadcast() 또는 sendOrderedBroadcast()에 전달하면 다른 앱에 브로드캐스트를 전달할 수 있음.
[ 📌Intent 유형 ]
1️⃣ 명시적 인텐트
- 인텐트를 충족하는 애플리케이션이 무엇인지 지정
- 이를 위해 대상 앱의 패키지 이름 또는 완전히 자격을 갖춘 Component 클래스 이름을 제공
- 명시적 인텐트는 일반적으로 앱 안에서 Component를 시작할 때 사용(시작하고자 하는 액티비티 또는 서비스의 클래스 이름을 알고 있기 때문)
- 예를 들어, 사용자 작업에 응답하여 새로운 액티비티를 시작하거나 백그라운드에서 파일을 다운로드하기 위해 서비스를 시작하는 것 등이 여기에 해당됨
2️⃣ 암시적 인텐트
- 특정 Component의 이름을 대지 않지만, 그 대신 수행할 일반적인 작업을 선언하여 다른 앱의 Component가 이를 처리할 수 있도록 해줌.
- 예를 들어, 사용자에게 지도에 있는 한 위치를 표시하고자 하는 경우, 암시적 인텐트를 사용하여 해당 기능을 갖춘 다른 앱이 지정된 위치를 지도에 표시하도록 요청 가능
'Programming > Android' 카테고리의 다른 글
[UMC 3rd/Android] 주요 Layout (0) | 2022.09.28 |
---|---|
[UMC 3rd/Android] 대표적인 View들의 역할 및 속성 (1) | 2022.09.28 |
[UMC 3rd/Android] 앱 구성 요소(Component) (0) | 2022.09.27 |
[UMC 3rd/Android] Manifest 주요 속성 (0) | 2022.09.27 |
[안드로이드 스튜디오 - Java] View Group (0) | 2022.01.13 |