본문 바로가기
Android

안드로이드 프로그래밍 Next Step 4장 Context

by OKOK 2021. 6. 22.

Context 클래스

Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없음. 리소스에 접근할 떄도 Context를 통해서만 가능함. Context는 여러 컴포넌트의 상위 클래스이면서 Context를 통해서 여러 컴포넌트가 연결돼 있으므로 컴포넌트를 살펴보는 것이 컴포넌트를 이해하는 데도 도움이 됨.  ContextImpl은 앱에서 직접 사용할 수 있는 퍼블릭 클래스는 아니지만, 소스는 공개되어 있으니 한번씩은 살펴보도록 함.

 

ContextImpl은 컴포넌트별로 있음

 

ContextImpl의 메서드

 

Context와 하위 클래스

객체 지향의 원칙에서 상속보다는 구성을 사용하라고 하는데, 위 클래스 다이어그램을 보면 원칙에 들어 맞는다는 것을 알 수 있음. 이렇게 하면 ContextImpl의 변수가 노출되지 않고, ContextWrapper에서는 ContextImpl의 공개 메서드만 호출하게 됨. 또한 각 컴포넌트별로 사용하는 기능을 제어하기도 단순해짐

 

사용 가능한 Context는 여러 개 있음 

3개의 인스턴스가 다르기 때문에 캐스팅을 함부로 하면 안됨. 

댓글