Intent : 안드로이드 컴포넌트 사이의 통신수단 ⇒ 메시징 객체
다른 앱 구성요소로부터 작업을 요청하는데 사용
기본적인 사용사례 3가지
1. 액티비티 시작 :
startActivity에 시작할 액티비티와 이에 필요한 데이터를 담은 intent 전달
만약, 그 전달된 액티비티가 완료되었을 때 결과를 수신하려면 startActivityForResult 호출하고,
그 결과를 사용하고자 할 때 onActivityResult에서 별도의 intent 객체로 수신
2. 서비스 시작 :
API 5.0 이상 ⇒ JobScheduler로 서비스 시작
API 5.0 이하 ⇒ startService에 시작할 서비스와 데이터를 담은 intent 전달
3. 브로드캐스트 ⇒ 모든 앱이 수신할 수 있는 메시지.
sendBroadCast or sendOrderedBroadCast에 intent 전달
인텐트 유형
- 명시적 인텐트 : 인텐트를 충족하는 애플리케이션이 무엇인지 , 구성요소의 이름을 정확히 명시
- 암시적 인텐트 : 지정하지 않아도 수행할 일반적인 작업을 선언하여 다른 앱의 구성요소가 작업을 처리할 수 있도록 함
ex) 전화를 걸면 전화 화면이 뜨고, 위치 표시를 하려고 하면 지도 앱이 뜸
인텐트 사용법
명시적 인텐트 ⇒ 실행대상을 명확하게 지정
Intent (Context packageContext, Class<?> targetClass)
암시적 인텐트 ⇒ 실행할 작업을 지정하면 그 작업을 실행할 인텐트 실행
Intent(String action [, Uri uri])
인텐트를 이용한 정보 전달 ⇒ putExtra 메소드 사용. 대부분의 자료형과 객체 저장 가능. 키-값 조합으로 자료 저장
Intent putExtra (String key, int value) int값 전달
Intent putExtra (String key, String value) string값 전달
Intent putExtra (String key, Serializable value)
Serializable?
객체를 intent로 전달하고자 할때, 그 객체를 Serializable 인터페이스를 구현한 객체로 하여 전달(클래스 생성시 implements Serializable을 해야함)
인텐트를 저장한 Extra 필드값 읽기 ⇒ get자료형Extra 메소드 사용.
대부분의 자료형과 객체 저장 가능. 키-값 조합으로 자료 저장
출처 : developer.android.com/guide/components/intents-filters?hl=ko
'Android' 카테고리의 다른 글
[Android] 팔레트 항목 뜯어보기 (0) | 2021.01.21 |
---|---|
[Android] AsyncTask 클래스 (0) | 2021.01.20 |
[Android] 스레드(Thread)와 핸들러(Handler) (0) | 2021.01.20 |
[Android] LifeCycle (0) | 2021.01.07 |
[Android] Manifest란? (0) | 2020.12.31 |