* 액티비티
액티비티(Activity)는 안드로이드 애플리케이션의 핵심 구성 요소로서 사용자가 직접 상호 작용하는 창(window)을 의미
View -> Activity -> 사용자 창(windows)
액티비티와 사용자 인터페이스 연결 : setContentView()를 이용하여 액티비티에 사용자 인터페이스를 정의한 View를 설정
* 인텐트
메세지 객체, 이를 통하여 다른 앱 구성요소(액티비티, 서비스, 브로드캐스트 리시버) 를 호출할 수 있음
* 인텐트 유형
1. 명시적 인텐트
특정 컴포넌트를 직접적으로 호출하는 것
startActivity() 또는 startService() 메소드를 통해 해당 컴포넌트를 실행
2. 암시적 인텐트
특정 컴포넌트를 직접 명시하지 않고 수행하고자 하는 작업을 인텐트 객체에 생성하여startService() 메소드에 넘김
-> IntentFilter를 통해 어느 앱을 사용할지 선택하도록 함
*인텐트 객체
1). 컴포넌트 이름 (Component Name) : 선택항목, 이름이 없을 경우 암시적 인텐트로 처리 됨
2). 액션 (Action) : 인텐트가 수행해야 할 작업
3). 데이터(Data) : 작업에 필요한 데이터, 데이터는 보통 Uri 객체로 액션과 결합하여 사용
4). 카테고리 (Category) : 작업에 추가적인 정보 제공
5). 엑스트라 (Extras) : 복잡한 데이터를 인텐트에 전달하기 위한 키-값 쌍의 추가 정보
id가 다르다면 같은 함수를 사용해도 id 조건을 작성을 통해 구분할 수 있음
* 액티비티 간의 데이터 전달
1. 명시적 인텐트 구조
// 현재 액티비티에서 AnotherActivity를 시작하기 위한 명시적 인텐트 생성
val intent = Intent(this, AnotherActivity::class.java)
//AnotherActivity 시작
startActivity(intent)
-> 명시적 인텐트의 경우 Intent(현재 컨텍스트(this), 시작하고자 하는 액티비티의 클래스)로 구성
2. 암시적 인텐트 구조
val call_intent = Intent(intent.Action_DIAL, Uri.parse("tel:114"))
startActivity(call_intent)
-> 암시적 인텐트의 경우 작업하고자 하는 액션명과 데이터명으로 구성
대분류 | 종류 및 구조 |
Extra에 값을 저장하는 메소드 | Intent putExtra(String name, int value) |
Intent putExtra(String name, String value) | |
Intent putExtra(String name, boolean value) | |
Extra에 저장된 값을 읽는 메소드 | int getIntExtra(String name, int defaultValue) |
String getStringExtra(String name) | |
boolean getBooleanExtra(String name, boolean defaultValue) |
'Android 앱개발 공부 > TIL(Today I Learned)' 카테고리의 다른 글
[Android] TIL 24일차 (0) | 2024.06.24 |
---|---|
[Android] TIL 23일차 (0) | 2024.06.21 |
[Android] TIL 21일차 (0) | 2024.06.19 |
[Android] TIL 20일차 (0) | 2024.06.18 |
[Android] TIL 19일차 (0) | 2024.06.17 |