글로벌 어플리케이션 상태를 유지하기 위한 기본 클래스 입니다.
AndroidManifest.xml의 application에서 name을 지정하여 사용 가능해집니다.
Activity class는 언제든지 스택에서 삭제되고 다시 불러오게 되지만 Application class는 한번 불리면 앱이 종료될 때 까지 유지됩니다.
2. Activity
Activity class를 사용하면 UI와 View를 배치 할 수 있는 창을 처리합니다. 모든 Activity들은 반드시 AndroidManifest.xml에 <activity>로 정의 되어야 합니다. Activity는 다른 Activity들의 method를 직접 호출할 수 없으며 데이터도 직접 액세스 할 수 없습니다.
3. Activity Lifecycle
Activity들은 activity stack으로 관리되며 새 Activity가 실행되면 stack의 상단의 배치됩니다.
Activity는 기본적으로 4가지 상태가 있습니다.
- Running - Activity가 화면의 foreground에 위치, 시스템 리소스가 부족해도 거이 중단되지 않는다.
- Paused - 화면에는 보이지만 다른 Activity가 일부분 가린 상태, 빠른 복귀를 위해 모든 상태정보를 유지하고 윈도우매니저에 연결을 유지하나 매우 낮은 메모리 상태에서 중지될 수 있다.
- Stopped - 완전히 다른 Activity에 의해 가려지는 경우, 상태정보와 윈도우매니저에 연결을 유지하나 중단될 가능성이 높다.
- Killed - 시스템 리소스가 부족할 때 메모리에서 중단되는 경우 해당 Activity들은 다시 시작되어야 한다.
4. Fragment
honeycomb부터 사용 가능한 Fragment는 Activity를 구현하는데 코드를 좀 더 모듈화 하고, 대형화면에 대해 정교한 사용자 인터페이스를 구축하고, 크고 작은 화면의 Application을 확장하는데 도움을 줍니다.