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


92

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

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


@Egor Thnx 남자, 그리고 기분이 언짢아 내가 질문을하기 전에 .. 그것을 돌볼 것이다 .. u는 한 번 더 질문에 나를 도울 수 .. 안드로이드의 모든 활동의 근본 무엇인가
안드로이드

질문을 지우려면 아래 토론을 확인하십시오
Egor

이 답변 중 어느 것도 완전하지 않습니다. 이것은 Google 검색을 위해 팝업되는 첫 번째 항목입니다.
SMBiggs

답변:


118

내가 이해하는 한 : 컨텍스트 는 기본 개체입니다. 따라서 애플리케이션 과 동일한 모든 활동 은 컨텍스트에서 파생됩니다. 각 활동마다 해당 이러한 수단 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유의 하십시오.


2
예, 죄송합니다. 링크를 확인했습니다. 실제로 Context는 Activity의 수퍼 클래스입니다. 어쨌든, Activity가 Context, Activity는 더 복잡한 객체 인 반면 Context는 정보를 보유하고 리소스에 대한 액세스를 제공하는 블록이라고 말하는 것은 완전히 옳지 않습니다.
Egor

@Rafael T Thnx 적절한 답을주는
안드로이드

17
객체 지향 언어를 언급하면 ​​완전히 옳습니다. Java의 모든 객체는 Object.class에서 파생되므로 FACT에서는 모든 것이 객체입니다. 좀 더 구체적으로 말하면, 활동은 맥락의 전문화입니다. 추상 클래스 동물과 동물 (고양이, 개)에서 파생 된 두 개의 클래스가있는 경우이 둘은 최소한 동물입니다. 동물이 필요한 모든 곳에서 Context와 동일하므로 고양이 또는 개를 통과해도 좋습니다! 비추천하기 전에 정보를 확인해주세요
Rafael T

1
"활동 컨텍스트는 앱이 살아있는 동안 지속되고 활동 컨텍스트는 활동과 함께 죽 습니다. "가 꺼진 것처럼 보입니다. 첫 번째는 애플리케이션 컨텍스트 여야하지 않습니까?
FirstOne

8

Android 문서 에서 볼 수 있듯이 :

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.