[android] 활동과 컨텍스트의 차이점은 무엇입니까?

활동과 컨텍스트가 동일합니까? 아니면 차이점이 있습니까?

언제 메소드가 활동을 전달해야하고 언제 컨텍스트를 전달해야합니까?



답변

내가 이해하는 한 :
컨텍스트 는 기본 개체입니다. 따라서 애플리케이션 과 동일한 모든 활동 은 컨텍스트에서 파생됩니다. 각 활동마다 해당 이러한 수단 A는 ;ApplicationContext

에서 developer.android.com 활동

java.lang.Objectandroid.content.Contextandroid.content.ContextWrapperandroid.view.ContextThemeWrapperandroid.app.Activity

그리고 신청

java.lang.Objectandroid.content.Contextandroid.content.ContextWrapperandroid.app.Application

애플리케이션 컨텍스트는 앱이 활성 상태 인 한 지속되지만 활동 컨텍스트는 활동과 함께 종료됩니다 onDestroy(해당 활동 이후에는 유효하지 않음 ).

따라서 활동 전반에 걸쳐 컨텍스트 (예 : Singleton)가 필요한 경우 애플리케이션 컨텍스트를 사용하는 것이 좋습니다.

일반적으로 컨텍스트가 예상되는 Android 프레임 워크 메서드에서는 전달하는 컨텍스트에 차이가 없습니다. 그러나 컨텍스트에 대한 오래 지속되는 참조를 유지하는 경우 항상 MemoryLeaks유의 하십시오.


답변

Android 문서 에서 볼 수 있듯이 :

Activity 클래스는 “ContextThemeWrapper”에서 확장되고,이 클래스는 “ContextWrapper”에서 확장되고,이 클래스는 “Context”에서 확장됩니다.

예, An Activity는 컨텍스트를 확장합니다!


답변