2011-03-28 3 views
7

문맥과 활동이 서로 다릅니다. 어쨌든 문맥이란 무엇입니까? 컨텍스트가 하나의 활동에 속해 있습니까? 활동이 변경되면 상황이 바뀔 것인가?하나의 활동 = 하나의 컨텍스트입니까?

나는 여러 가지 활동을하는 게임을 가지고 있습니다. 각 부분, 스플래시 스크린, 메뉴, gamescreen 등에 대한 각 활동 문제는 사운드 플레이어로 soundpool을 사용하는 하나의 싱글 톤 SoundManager입니다. 스플래시 스크린에 모든 사운드를로드하고 싶습니다. 하지만 다시 한 번 생각해 본 후 문맥은 어떨까요?

public void loadSound(Context context, int resId, String name) { 
     int id = sounds.load(context, resId, priority) 
    } 

SplashScreen 활동에서 사운드를로드하는 경우 GameScreen Activity에서 사운드를 어떻게 재생할 수 있습니까? 다른 컨텍스트가 아닙니까? 당

답변

8

: http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html 안드로이드에

, 컨텍스트는 많은 작업에 사용됩니다하지만 대부분로드 리소스에 액세스 할 수 있습니다. 따라서 모든 위젯은 해당 생성자 의 Context 매개 변수를 수신합니다. 일반 Android 애플리케이션의 경우 보통 두 가지 종류의 컨텍스트, 활동 및 애플리케이션이 있습니다.

그리고 the Android docs에서

는 :

그것은뿐만 아니라 업 전화 응용 프로그램 수준의 작업, 응용 프로그램 별 자원과 클래스에 대한 액세스를 허용 등 시작 활동, 방송과 로 수신 의도 등.

일반적으로 각 활동에는 자체 컨텍스트가 있으며 응용 프로그램 그 자체는 컨텍스트를 가질 것이다.

+0

글을 읽는 것을 정말로 이해하지 못합니다. 어떤 조건으로 인해 메모리가 누출 될 수 있습니까? – Fugogugo

+1

아티클 전체가 관련성이 없습니다. 단지 컨텍스트가 사용되는 방법과 각 응용 프로그램이 일반적으로 2 종류의 컨텍스트 - 활동 컨텍스트 및 응용 컨텍스트 – brendan

관련 문제