1 Activity
1.1 서론
Activity는 안드로이드 4대 컴포넌트중 하나로 가장 UI에 관련을 가지고있기떄문에
가장 기본이 되는 구성요소이다.
Activity는 생명주기 안에서 여러 상태로 전환이되며
활동의 상태 변화에 따라 여러 콜백을 제공한다.
생성부터 소멸까지 7가지 상태 변화를 가지는 생명주기에 대해 알아볼 것이다.
2 생명주기
2.1 3가지 상태에 대해
Activity는 크게 3가지 상태가 존재할수있다.
- 실행상태(Running) : ActivityStack의 최상위에 존재하며 포커스를 가지고 있어 사용자에게 보이는 상태이다.
- 일시 중지 상태(Paused) : 사용자에게 보이기는 하지만 다른 Activity가 자신보다 위에 있어 포커스를 받지 못하는 상태이다. 예로 대화상자가 나온경우 이다.
- 중지 상태(Stopped) : 다른 Activity에 의해 완전히 가려져 사용자에게 보이지 않는 상태이다.
2.2 7가지 상태에 대해
- OnCreate : Activity가 최초에 생성될 때 호출되는 메서드이다.
- OnStart : OnCreate 가 호출된 후에 Activity가 사용자에게 보이기 직전에 호출된다.
- OnResume : 사용자와 상호작용하기 직전에 호출된다.
- OnPause : 자신의 Activity가 포커스를 잃었을 때 호출된다.
- 포커스를 다시 얻게 되면 OnResume 가 호출된다.
- OnStop : 다른 Activity에 의해 자신의 Activity가 완전히 가려졌을 때 호출된다.
- 포커스만을 잃으면 OnPause 이고 포커스만이 아니라 Activity까지 보이지 않으면 OnStop까지 진행된다.
- 다시 Activity가 화면에 보이면 OnRestart가 호출된다.
- OnDestroy : Activity가 소멸되기 직전에 호출된다.
상태에 대한 사용 예
위에서 7가지 상태에 대해 알아보았고
이 상태를 어느 상황에서 잘 적용할 수 있는지 예로 알아볼 것이다.
- OnCreate : 최초에 실행되는 메서드이기 때문에 초기화 작업 등 Activity의 생성자와 비슷한 역할을 수행할 수 있다.
- OnResume : 상호작용하기 직전에 호출되기 때문에 애니메이션을 시작하는 등 어떠한 동작을 받기 전 작업을 수행할 수 있다.
- onPause : 포커스를 잃은 Activity가 다시 포커스를 얻을 것이라고 확신할 수 없다. 따라서 각종 데이터를 임시저장할 필요가 있다.
3. 예외상황
3.1 다이얼로그
Activity에서 다이얼로그를 띄우게 되면 Activity의 포커스를 잃기 때문에
OnPause가 호출될 줄 알았지만 그렇지 않았다.
그 이유는 다이얼로그는 Activity의 일부이기 때문이었다.
따라서 아무런 콜백이 호출되지 않는다.
'Android > ETC' 카테고리의 다른 글
Android inflation 란 (0) | 2021.09.25 |
---|---|
Android 에서 Context가 무엇일까 (0) | 2021.09.25 |
Android Intent에서의 Bundle 에 대해 (0) | 2021.09.25 |