20230802 Android

기메단·2023년 8월 2일
0

TIL

목록 보기
13/44

Activity

앱이 실행되면, 전체 화면에 앱의 UI가 표시되고, 
사용자가 입력한 화면 터치 또는 버튼 터치 등의 이벤트에 따라 앱의 기능이 수행됨. 

- 사용자와 상호 작용할 수 있는 화면을 제공하는 애플리케이션의 구성요소
- 액티비티마다 창이 하나씩 주어져 이곳에 사용자 인터페이스를 끌어올 수 있음 
  (사용자 인터페이스는 View 객체들로 구성)
- 화면에 UI를 표시하기 위해 최소 하나의 액티비티를 가져야함. 

모든 Activity 컴포넌트는 Android Manifest 파일에 등록되어야 한다. 

Android Manifest

- 애플리케이션 패키지 이름 (애플리케이션의 고유한 식별자 역할) 설정
- 애플리케이션 구성요소들을 설명
- 이 애플리케이션과 상호작용하는 다른 애플리케이션이 가져야할 권한 설정
- 애플리케이션에서 사용하는 라이브러리 설정
- 애플리케이션이 필요로 하는 Android API의 최소 수준 설정

Intent

일종의 메시지 객체. 
다른 앱 구성요소 (액티비티, 서비스, 브로드 캐스트리시버)로 작업을 요청할 수 있다. 

01. 명시적 인텐트 (Explicit Intent)
 - 보통 현재 앱안에 있는 구성요소(액티비티, 서비스)를 시작시킬 때 사용
 
02. 암시적 인텐트 (Implicit Intent)
 - 보통 다른 앱 안에 있는 구성 요소를 구동하는데 사용 
 
 03. Intent 의 객체
  - 컴포넌트 이름
  - Action
  - Data
  - Category
  - Extra (요청한 작업을 수행하기 위해 필요한 추가 정보를 담고 있는 키-값 쌍의 데이터) 
  
  04. 명시적 인텐트로 다른 액티비티 시작하기 
  

this : 애플리케이션 컨텍스트 정보를 넘겨 줌
SecondActivity : 시작하고자 하는 액티비티 클래스
-> SecondActivity 클래스를 설명하는 Intent 객체를 전달
startActivity(intent) : startActivity 메소드를 호출

05. 암시적 임텐트로 다른 액티비티 시작하기 

우선 인텐트 안에 작업과 데이터를 저장해야 한다.
지도와 114에 전화를 거는 작업을 수행할 수 있는 액티비티를 실행시키기 위해 인텐트를 생성하고 startActicity() 메소드에 전달.

06. 암시적 임텐트 수신 (필터)
- 본인의 앱이 수신할 수 있는 암시적 인텐트가 어느 것인지 알리려면
  각 앱 구성 요소에 대한 하나 이상의 인텐트 필터를 
  <intent-filter> 요소로 manifest 파일에 선언해야한다.
  
- 각 인텐트 필터가 인텐트의 작업, 
  데이터 및 카테고리를 근거로 어느 유형의 인텐트를 수신할 지 결정.

android:name 속성 값이 SecondActivity인 activity 요소 하위에 인텐트 필터를 추가한다.

07. 데이터 전달은 Extras를 활용하여 이름과 값의 쌍으로 된 정보를 전달. 

* Extras에 값을 저장하는 메소드 
 - Intent putExtras(String name, Int value)
 - Intent putExtras(String name, String value)
 - Intent putExtras(String name, boolean value)

* Extras에 저장된 값을 읽는 메소드
 - int getlnExtra(String name, Int defaultValue)
 - String getStringExtra(String name)
 - boolean getBooleanExtra(String name, boolean defaultValue)

쉽게 이해 되지는 않는데, 익숙해지게 계속 코드 짜보고 연습해야지

4개의 댓글

comment-user-thumbnail
2023년 8월 3일

인텐트를 활용해서 세컨드 액티비티로 화면을 전환하는 과정을 잘 보여주신거같습니다

답글 달기
comment-user-thumbnail
2023년 8월 3일

Intent에 대한 부분이 잘 이해가지 않았는데 정리해주신거 보고 다시한번 머리속에 넣고있네용

답글 달기
comment-user-thumbnail
2023년 8월 3일

저도 어제 Intent에 대해서 공부했는데 정리를 깔끔하게 잘해놓으신 것 같네요!
아무래도 자주쓰는 구문인 만큼 익숙해지는게 중요할 것 같습니다 :)

답글 달기
comment-user-thumbnail
2023년 8월 3일

깔끔하게 정리되어 있어서 쉽게 복습했네요!

답글 달기