Context는 크게 두가지 역할을 수행하는 Abstract 클래스 이다.
1)어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기
2)안드로이드 시스템 서비스에서 제공하는 API를 호출 할수 있는 기능
Context 인터페이스에서 제공하는 API 중, 대표적인 것은?
getPackgeName(), getResource() - 첫번째 역할을 수행하는 메소드
- 'get' 이라는 접두어로 시작하는 메서드
startActivity(), bindService()와 같은 메서드들은 두번째 수행하는 메소드
왜 Context 클래스가 필요할까?
-안드로이드에서는 Context라는 인스턴스화된 매개체를 통해야만 어플리케이션 연관된 시스템 기능 수행, 시스템 함수 호출이 가능함.
안드로이드 시스템에서 어플리케이션 정보를 관리하고 있는 것은 시스템이 아닌,
ActivityMamagerService라는 일종의 또 다른 어플리케이션임.
당연히 정보를 얻고자 하는 어플리케이션이 어떤 어플리케이션인지에 관한 키 값도 필요해집니다.
즉,
자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할
ActivityManagerService에 접근 할 수 있도록 하는 통로 역할
마무리
결 론! 결국, 안드로이드 Context 는 여러가지 이유로 기존 플랫폼과는 다른 방식으로 어플리케이션을 관리하고 있고, 때문에 기존 플랫폼들에서는 단순하게 시스템 API 를 통해 할 수 있는 일들을, Context 인스턴스라는 조금은 귀찮지만 강력한 녀석을 통해 대행 처리하고 있다고 할 수 있겠습니다.
[내용 정리]
참고사이트 :
http://androidside.com/bbs/board.php?bo_table=B46&wr_id=11977