안드로이드 Application 클래스 사용법

싱글톤 패턴으로 공통 데이터영역이라던지 메소드를 만들어 사용하곤 했었는데
안드로이드 자바 프로그래밍에서는 이런 기능을 해주는 클래스가 있다.

바로 Application 클래스인데 사용법은 아래와 같다.

public class MyApplication  extends Application{
    public byte[] g_pTempBuffer = null;

    @Override
    public void onCreate(){
        super.onCreate();
        Log.d("linsoo", "MyApplication onCreate");
        g_pTempBuffer = new byte[20];
        g_pTempBuffer[0] = 0;
        g_pTempBuffer[1] = 10;
        g_pTempBuffer[10] = 100;
    }
    public void showData(){
        Log.d("linsoo", "ShowData = "+g_pTempBuffer[10]);
    }
}

위 소스처럼 Application을 상속받는 클래스를 하나 만들어준다.
그리고 공통으로 사용할 변수나 함수들을 만들어준다.

그리고 사용할 클래스에서 아래와 같이 선언해준다.

private MyApplication myApp = null;

public void onCreate(Bundle savedInstanceState){
	super.onCreate(savedInstanceState);
	myApp = (MyApplication) getApplication();
}

사용할 변수명은 위에 선언해주고 반드시 onCreate 안에서 초기화를 해준다.
테스트 해본 결과 변수 선언할때 동시에 해버리면 아직 MyApplication이 생성되지 않은 시점일수도 있어서 null값 나옴.

Log.d("linsoo", "mainBuffrer0="+myApp.g_pTempBuffer[0]);
Log.d("linsoo", "mainBuffrer1="+myApp.g_pTempBuffer[1]);
myApp.showData();

myApp.g_pTempBuffer[0] = 10;
myApp.g_pTempBuffer[1] = 20;

사용은 위와 같은 방식으로 사용하면 된다.

그리고 AndroidManifest.xml에다가

<application
   android:name=".MyApplication">
   ...
</application>

와 같이 내가 만든 클래스 명을 <Application 안에 name 속성으로 이름을 적어줘야 한다.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다