안녕하세요!
새롭게 시작한 블로그의 첫 주제는 안드로이드의 생명주기에 관한 것입니다!
제가 안드로이드 개발자다 보니 안드로이드를 첫 글로 작성하게 되었네요ㅎㅎ
앱개발을 하면서 중요하지만 가장 접하기 쉬운 부분이라 생각하여 생명주기를 주제로 글을
작성하였습니다! 최대한 잘못된 정보 없이 전달해드리려고 노력했으니 잘 봐주셧으면 좋겠어요!
피드백은 언제나 환영입니다. :)
우선 안드로이드에서 생명주기라는 것은 화면이 생성되고 사라지는 과정이라고 생각하시면 됩니다.
앱이 최초로 실행될때 onCreate()이라는 메소드가 호출됩니다. 안드로이드 프로젝트를 만들때
처음 마주치는 녀석이죠ㅎ
그다음은 onStart()입니다 onStart()는 액티비티가 화면에 그려질때 실행되는 메소드입니다.
onResume()은 액티비티가 화면에 완전히 보여질때 호출되는 메소드입니다. 액티비티가 완전히 그려진
상태입니다.
onPause()는 현재의 액티비티가 초점을 벗어났을때 실행됩니다.
onStop()은 현재의 액티비티가 다른 액티비티에 완전히 가려졌을때 실행됩니다.
onDestroy()는 현재 액티비티가 삭제될때 실행됩니다.
이제 위의 설명을 토대로 문제를 내보겠습니다.
1. 메인 액티비티가 처음 화면에 등장하고 두번째 액티비티로 이동
2. 두번째 액티비티가 지워지면서 다시 메인 액티비티로 이동
위 두가지 경우에 메소드 호출 순서는 어떻게 될까요?
1번
Main onCreate() -> Main onStart() -> Main onResume() -> Main onPause() -> Second onCreate() -> Second onStart() -> Second onResume() -> Main onStop()
D/TAG: MainActivity onCreate()
D/TAG: MainActivity onStart()
D/TAG: MainActivity onResume()
D/TAG: MainActivity onPause()
D/TAG: SecondActivity onCreate()
D/TAG: SecondActivity onStart()
D/TAG: SecondActivity onResume()
D/TAG: MainActivity onStop()
2번
Second onPause() -> Main onRestart() -> Main onStart() -> Main Resume() -> Second onStop() -> Second onDestory()
D/TAG: SecondActivity onPause()
D/TAG: MainActivity onRestart()
D/TAG: MainActivity onStart()
D/TAG: MainActivity onResume()
D/TAG: SecondActivity onStop()
D/TAG: SecondActivity onDestroy()
이렇게 결과를 보실수 있어요. 혹시나 헷갈리신다면 직접 코드를 작성해서 연습해보시는게 좋습니다!
위의 문제는 큰기업의 면접에서 실제로 나오는 문제라서 확실히 이해하면 도움되실거에요!
그럼 20000~
코드는 아래 주소에서 확인하실수 있습니다!
https://github.com/ckdrb7017/BlogProject/tree/temp/ActivityLifeCycle
'개발 > 안드로이드' 카테고리의 다른 글
안드로이드 구글STT에서 Recording이 안되는 이유 (9) | 2021.04.26 |
---|---|
Android MVVM Example 프로젝트 (0) | 2021.04.01 |
안드로이드 MVVM에 GraphQL 적용하기(2/2) (0) | 2020.07.19 |
안드로이드 MVVM에 GraphQL 적용하기(1/2) (0) | 2020.07.19 |
Horizontal RecyclerView 자동으로 아이템 맞추기 (2) | 2020.07.04 |
댓글