안드로이드 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 속성으로 이름을 적어줘야 한다.


크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.