티스토리 뷰


안드로이드에서 Activity간 상관없는 전역 변수를 만드는 방법을 살펴보자.

크게 두 가지 방법이 있는데,

1. android.app.Application을 이용하는 방법

2. Singleton 디자인 패턴을 이용하는 방법


Activity에서 접근해야한다면 전자를 사용하는 것이 낫고, 그 외의 Provider나 다른 곳에서 접근해야하는 데이터면 후자가 나을것이다. 하지만 후자의 경우 메모리가 모자라면 static 변수들을 메모리에서 제거할 것이다. 이런 경우 onSaveInstatnceState(Bundle) 을 통해서 싱글콘을 따로 저장시켜야하는 추가 작업이 필요하다.



1. Android.app.Application을 이용하는 방법

1) Application을 상속받는 클래스를 만든다. (예제는 ProjectCampusApplication 클래스)

public class ProjectCampusApplication extends Application{
  private String data;
  public String getData()
  {
    return data;
  }
  public void setData(String data)
  {
    this.data = data;
  }


2) Android manifest xml파일에 Application을 위의 어플리케이션을 설정한다.

- Manifest editor로 보면 아래의 Application Attributes > Name을 설정하면 된다.
(화면은 ProjectCampusApplication으로 설정한 화면)



(xml을 텍스트로 보면 아래와 같이 된다)

<application android:name="ProjectCampusApplication" .....


3) Activity 안에서 변수를 가져온다.

//set
((ProjectCampusApplication)this.getApplication()).setData("foo");

//get
String s =  
((ProjectCampusApplication)this.getApplication()).getData();

 


 
2. Singleton 디자인 패턴을 이용하는 방법

 1) 싱글톤을 패턴으로 클래스를 만든다. 

public class MyGlobals {
  private String data;
  public String getData()
  {
    return data;
  }
  public void setData(String data)
  {
    this.data = data;
  }
  private static MyGlobals instance = null;

  public static synchronized MyGlobals getInstance(){
    if(null == instance){
      instance = new MyGlobals();
    }
    return instance;
  }


 


2) 싱글콘 객체 안에서 변수를 가져온다.

//set
MyGlobals.getInstance().setData("foo");

//get
String s =  
MyGlobals.getInstance().getData();

 


끝.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함