1. Activity : 아느로이드 애플리케이션을 구성하는 기본 단위이며, 사용자와 상호 작용하는 UI를 제공
- 각 Activity는 '사용자에게 보여지는 단일 화면'이며 '안드로이드 애플리케이션의 기본 구성 요소'인데요. 이는 "Activity가 시스템에 의해 애플리케이션이 실행될 수 있는 '진입점'역할을 수행한다"는 의미
2. 단일화면 : '사용자의 입력을 받을 수 있는 활성화된 유일한 화면'이라는 의미, 활성화되지 않은 Activity UI요소들은 입력을 받을수 없다.
3. 인텐트(Intent) : 안드로이드에서 앱 구성 요소 간의 작업을 요청할 수 있는 메시지 객체
- 기본적인 용례)
a) 액티비티 시작 : Activity는 사용자와 상호 작용이 가능한 단일 화면. Activity의 새 인스턴스를 시작하기 위해 startActivity() 메소드를 사용하여 Intent를 전달할 수 있습니다. 호출한 Activity가 완료되었을 때 결과를 수신하기 위해서는 startActivityForResult를 사용한다
b) 서비스 시작 : Service는 UI없이 백그라운드에서 작업을 수행하는 요소
c) 브로캐스트(BroadCast) 전달 : 브로캐스트는 모든 앱이 수신할 수 있는 메세지로, sendBroadCast(), sendBroadCastOrderd(), sendStickyBroadCast 메소드에 Intent를 전달하여 BroadCast를 전달할 수 있습니다.
5. Click 이벤트 리스너
| 장점 | 단점 |
XML onCick |
레이아웃 XML 파일에서 View 객체들의 ID를 신경 쓰지 않아도 된다. 심지어 ID가 없어도 된다. |
연결된 코틀린, 또는 자바 코드의 메소드 형식에 민감하다. 메소드가 없거나, 일므이 틀리거나, 파라미터 형태가 다르다면 에러가 발생하고 앱이 종료된다. 이런 에러는 보통 Runtime(실행)중에 발견된다. |
View.setOnClickListener |
에러 발생을 컴파일 시에 미리 알 수 있다. 코틀린의 경우 안들로이드 확장 기능으로 findViewById()가 필요 없어 소스가 간결하다. |
View 객체의 ID에 민감하다. 반드시 해당 View ID가 존재해야 하며, 레이아웃 구성이 복잡한 경우라면 View객체들의 ID를 전부 이름 짓기 곤란한 경우가 있다. |
6. Activity를 시작하기 위해서 Intent를 사용하는 방법
a) 명시적 호출 : 시작할 기본 구성 요소(Activity, Service)등의 '이름'을 정확하게 알고 있을 때 사용, 여기서 이름은 패키지명까지 포함된 것, 보통 앱 자신의 구성 요소를 호출할 때 사용
구성요소 |
설명 |
Component Name |
Component Name은 실행하고자 하는 기본 구성 요소의 명확한 이름이며 Intent가 명시적인지, 암시적인지 구분하는 요소가 됩니다. Component Name이 지정된 경우, Intent는 해당 Component에만 전달됩니다. 반면 Component Name이 지정되어 있지 않다면 암시적 Intent로 취급되어 작업 내용과 데이터를 기반으로 시스템이 실행할 구성 요소를 선택 |
Action |
Action은 수행할 작업을 의미 ex) 'ACTION_VIEW'와 같은 작업은 Activity가 사용자에게 특정 화면을 보여주도록 요청, 때문에 ACTION_VIEW 액션은 갤러리 앱의 특정 사진을 보여줄 경우 등에 사용 |
Data |
Data는 Action에 따라 필요한 Data를 함께 보낼 때 사용 |
Category |
Category는 인텐트를 처리하는 구성 요소에 대한 '분류'를 의미 ex) 'CATEGORY_LAUNCHER'는 이 Activity가 런처에서 보여지고 앱이 시작될 때 사용되는 화면임을 의미하는 정보 ※ 런처란 안드로이드에서 [홈]키를 눌었을 때 실행되는 앱을 의미 |
Extras |
작업을 수행하기 위해 필요한 추가 정보 보통은 Key, Value 타입의 정보를 전달하며, Bundle 객체로 전달할 수 도 있다. |
Flags |
Intent에 대한 Meta정보 특정 구성 요소를 실행할 때 추가 정보로 활용될 수 있습니다. ex) Activity를 실행할 때 현재까지 시랳ㅇ된 모든 Activity 스택을 초기화하고 실행하는 등의 작업을 할 수 있습니다 |
b) 암시적 호출 : 시작하는 구성 요소(Activity, Service)의 이름을 명확하게 적지는 않지만, 일반적인 작업 유형을 선언하여 그 작업을 수행할 수 있는 구성 요소를 호출
'App > 안드로이드' 카테고리의 다른 글
람다 식 / Collection API / 확장함수 / Null Safety (0) | 2019.04.11 |
---|---|
Singleton 패턴 및 Obejct 클래스 / Data Class / 내부/중첩 클래스 (0) | 2019.04.10 |
Getter/Setter / Property와 Field / 클래스 상속/위임 / 프로퍼티 위임(lazy, observable, map) (0) | 2019.04.08 |
코틀린(Kotlin) 특징 (0) | 2019.04.06 |
버튼 구현 / 데이터 타입 / 제약정보 추가 / 접근제어자 (0) | 2019.04.06 |