2012-08-06 5 views
3

나는 안드로이드를 배우기위한 튜토리얼을 따르고 있지만 문제는 모든 세부 사항을 포함하지 않는다는 것입니다. 일부 빛이 getApplicationContext()의 사용 사례에 흘릴 수 있다면getApplicationContext() 함수가 사용 된 경우

특히, 그것은 좋은 것입니다.

답변

3

Context은 애플리케이션의 리소스 (즉, res 폴더의 모든 것)와 Android 런타임의 핸들로 생각할 수 있습니다. Activity, Service, Application과 같은 클래스는 Context에서 상속됩니다.

일반적으로 Activity는 Context에서 상속되므로 Context이 필요할 때마다 현재 Activity을 전달합니다.

또한 Context이 필요한 경우 대신 활동 getApplicationContext() 사용에 대한 정보를 찾을 수 있습니다. 이것은 일반적으로 Context를 필요로하는 코드가 Activity에 대한 참조를 불필요하게 보유하는 것을 방지하기위한 것이며, 최악의 경우 가비지 수집을 방해 할 수 있습니다 (Application을 전달하는 것은 그 시나리오에서 실제로 큰 문제는 아닙니다. 오랫동안 주변에있을 것으로 예상 됨).

그러나 메서드의 인수가 Context 유형이지만 실제로는 Activity이 필요한 특정 시나리오가 있습니다. startActivity()을 사용하면 이것이 내가 믿는 한 가지 예입니다 (내가 틀렸다면 수정하십시오).

관련 문제