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)
쉽게 이해 되지는 않는데, 익숙해지게 계속 코드 짜보고 연습해야지
인텐트를 활용해서 세컨드 액티비티로 화면을 전환하는 과정을 잘 보여주신거같습니다