Context(컨텍스트)는 쉽게 말하면 '안드로이드 시스템과 앱에서 만든 컴퍼넌트를 연결해 주는 역할'을 하는 추상 클래스다.
그러므로 Context 라는 추상클래스는 컴퍼넌트에 대해 상위 클래스의 지위를 가지고 컴퍼넌트의 모든 기능과 Interface(상호작용)할 수 있는 함수를 가지고 있다.
다시 말해서 안드로이드 시스템은 컴퍼넌트의 기능을 Context라는 추상클래스를 통해 구현한다는 것이다.
예를 들어 컴퍼넌트 중 화면을 만드는 Activity(액티비티)에는 여러 구성요소(텍스트, 버튼 등)들이 있는데 이것은 XML코드로 작성된다. 이것을 View(뷰)객체로 만들면 화면에 보이게 된다. 이 과정을 안드로이드 시스템이 Context를 통해 구현하는 것이다. 왜 이것이 가능하냐면 Activity는 Context를 상속받기 때문이며 또한 Context가 이 기능을 가지고 있기 때문이다.
Context(컨텍스트)의 종류
1. Application Context(애플리케이션 컨텍스트) :
애플리케이션과 관련된 기능을 가지고 있는 클래스이다. 컴퍼넌트에서 applicationContext를 호출하여 사용할 수 있다. 하나의 앱에서 하나의 인스턴스(객체)만 만들 수 있다.
2. Base Context(기초 컨텍스트) :
컴퍼넌트(Acitvity, Service, Content Provider, Broadcast Receiver)의 기초가 되는 클래스이다. this 또는 baseContext 로 호출할 수 있다.
Context(컨텍스트)의 기능
컨텍스트에서 지원하는 기능들은 각 컴퍼넌트 마다 사용할 수 있는 것과 없는 것이 있다. 특히 화면과 관련된 3개의 기능은 Activity에서만 사용할 수 있다.
Application | Activity | Service | Content Provider | Broadcast Receiver | ||
Show a Dialog(다이얼로그 보이기) | X | O | X | X | X | |
Start an Activity(액티비티 시작) | X | O | X | X | X | |
Layout Inflation(레이아웃 객체 생성) | X | O | X | X | X | |
Start a Service(서비스 시작) | O | O | O | O | O | |
Bind to a Service(서비스 유지) | O | O | O | O | X | |
Send a Broadcast (브로드캐스트 메시지 보내기) |
O | O | O | O | O | |
Register BroadcastReceiver (브로드캐스트리시버 등록) |
O | O | O | O | X | |
Load Resource Values (리소스 값 불러오기) |
O | O | O | O | O |
Wraven...
'안드로이드앱 코딩_AndroidApp > 안스_코틀린_쪼개기' 카테고리의 다른 글
파편21_Intent로 데이터 주고 받기 (0) | 2020.07.17 |
---|---|
파편19_android studio_프로젝트 복사본 만드는 법 (0) | 2020.07.10 |
파편18_Gradle (0) | 2020.07.07 |
파편17_Object and companion object (0) | 2020.07.07 |
파편16_들여쓰기 탭 수정하는 법 (0) | 2020.07.06 |