정의 : 인텐트는 컴포넌트간에 작업 수행을 위한 정보를 전달하는 역할
용도
- 액티비티간 화면 전환
- 호출된 컴포넌트 B가 호출한 컴포넌트 A로 어떤 결과를 전달할 때도 사용
사용메소드
- startActivity() : 새로운 액티비티 화면을 띄울 때 사용
- startService(), bindService(), 서비스와 관련된 메소드
- broadcastIntent() : 브로드캐스팅을 수행할 때
Action, Data로 구성 Action은 수행할 기능, 데이터는 액션이 수행될 대상 데이터를 의미 Intet의 종류?
- 명시적 인텐트 명시적 인텐트는 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우에 사용(특정 컴포넌트나 액티비티가 명확하게 실행되어야할 경우에 사용)
- 암시적 인텐드 액션과 데이터를 지정하긴 했지만, 호출할 대상이 달라질 수 있는 경우에 사용합니다. ex) 인터넷 작업시 브라우저를 선택하는것 처럼
기본구성
- 액션(Action) : 수행할 기능
- 데이터(Data) : 액션이 수행될 대상 데이터
var intent = Intent(Intent.ACTION_DIAL, Uri.parse(data))
액션 : ACTION_DIAL 이며 전화 다이얼을 걸라는 액션
데이터 : URL로 파싱한 것 액션이 수핼할 data 즉 : 전화번호
Intent 는 택배를 전달하는 택배기사, 택배차
Bundle 은 택배가 된다
인텐트 동작 순서
- Componenet가 ActivityManager에게 다른 컴포넌트의 실행을 요청
- ActivityManager는 패키지 정보를 가지고 있는 PacakageManager에게 컴포넌트 정보 요청
- 유요한 컴포넌트임을 확인하면 컴포넌트를 실행
- 여기서 실행을 요청할 때 컴포넌트의 정보가 Intent 입니다.
- Intent는 IPC 통신을 위한 직렬화 객체로 Parcelable을 통해 직렬화 되어 있습니다.
- 즉, 이 객체는 다른 프로세스로 전달하기 위한 데이터 입니다.
- 활성화 될 컴포넌트 정보 + 활성화 될 컴포넌트에게 전달할 데이터
- activity의 경우 startActivity()
- service의 경우 startService()
- Broadcast Recevier의 경우 sendBroadcast()
인텐트의 종류
- 명시적 인텐트
- 암시적 인텐트
'안드로이드 > 기초' 카테고리의 다른 글
[Android/Compose] TextToSpeech(tts) 구현하기 (0) | 2024.05.17 |
---|---|
[Android] Android Version들 간의 호환성 관계 (0) | 2024.05.09 |
[Android] targetSdkVersion, compileSdkVersion,minSdkVersion (1) | 2024.05.07 |
[Android] Gradle이란? (0) | 2024.05.06 |
[Android] Context란? (0) | 2024.05.06 |