public class MyApplication extends android.app.Application {
public static boolean DEBUG; //현재 DEBUG 모드로 앱이 실행중인가?
@Override
public void onCreate() {
super.onCreate();
}
}
<1. Application class>
안드로이드의 Application class는 앱의 실행과 동시에 생성되는 객체로 대표적인 Singleton(앱 실행 시 오직 하나의 객체만 유지)
구조를 반영한 class 입니다.
앱의 Main activity를 띄우기 전에 사용자 로그인 상태를 확인 한다거나 다수의 하위 객체(Activity 나 Viewmodel 등)에서
참고할 데이터를 미리 셋팅해 두는 등 갖가지 전처리 기능을 수행 할 수 있는 class입니다.
위 예제에서는 현재 앱이 DEBUG 모드인지 확인하는 static 변수를 가지고 있습니다.
이는 모든 하위 객체에서 현재 DEBUG 모드로 작동중인지 확인하여 출력 log의 레벨을 결정할 수 있습니다.
public class MainViewModel extends AndroidViewModel {
private MyApplication myApp;
public MainViewModel(Application application) {
super(application);
myApp = (MyApplication)getApplication();}
}
<2. 하위 객체에서의 사용 예>
Application을 사용하는 하위 class입니다. Activity 나 ViewModel이나 getApplication으로 언제 어디서든 Application 객체를 사용할 수 있습니다.
주의!
찾기 쉽고 편하다고 해서 고민없이 Application class에 attribute나 method를 밀어 넣으면 앱의 실행 시간도 길어지고
앱이 종료 될 때까지 class가 메모리에 상주하고 있기 때문에 메모리 점유율도 높아집니다.
Application에는 충분한 검토 후 코드를 추가하세요.
'Android' 카테고리의 다른 글
Floating Action Button (0) | 2021.03.29 |
---|---|
Parcelable (0) | 2021.03.24 |
개발 프로젝트에 Firebase 셋팅, 개발중인 앱 Firebase에 추가 (0) | 2019.03.10 |
안드로이드 앱 개발의 기본 아키텍쳐 (0) | 2019.03.01 |