활동과 컨텍스트가 동일합니까? 아니면 차이점이 있습니까?
언제 메소드가 활동을 전달해야하고 언제 컨텍스트를 전달해야합니까?
답변:
내가 이해하는 한 :
컨텍스트 는 기본 개체입니다. 따라서 애플리케이션 과 동일한 모든 활동 은 컨텍스트에서 파생됩니다. 각 활동마다 해당 이러한 수단 A는 ;Application
Context
에서 developer.android.com
활동
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
그리고 신청
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
애플리케이션 컨텍스트는 앱이 활성 상태 인 한 지속되지만 활동 컨텍스트는 활동과 함께 종료됩니다 onDestroy
(해당 활동 이후에는 유효하지 않음 ).
따라서 활동 전반에 걸쳐 컨텍스트 (예 : Singleton)가 필요한 경우 애플리케이션 컨텍스트를 사용하는 것이 좋습니다.
일반적으로 컨텍스트가 예상되는 Android 프레임 워크 메서드에서는 전달하는 컨텍스트에 차이가 없습니다. 그러나 컨텍스트에 대한 오래 지속되는 참조를 유지하는 경우 항상 MemoryLeaks 에 유의 하십시오.
Android 문서 에서 볼 수 있듯이 :
Activity 클래스는 "ContextThemeWrapper"에서 확장되고,이 클래스는 "ContextWrapper"에서 확장되고,이 클래스는 "Context"에서 확장됩니다.
예, An Activity는 컨텍스트를 확장합니다!