티스토리 뷰
안드로이드에서 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
- gre
- gae
- 자바스크립트
- 샷
- ny-school
- google app engine
- Javascript
- mini project
- Python
- 뽐뿌
- Android
- java
- HTML5 튜토리얼
- GX-10
- HTML5
- 팁
- 서울
- 탐론 17-50
- Writing
- 강좌
- lecture
- 속깊은 자바스크립트 강좌
- 안드로이드 앱 개발 기초
- c++
- K100D
- php
- 안드로이드
- 삼식이
- TIP
- 사진
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |