Android 앱개발 공부/TIL(Today I Learned)

[Android] TIL 22일차

bunny code 2024. 6. 20. 21:08

* 액티비티

액티비티(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