오늘 볼건 안드로이드 Activity 생명주기이다.
안드로이드 앱을 개발하는 사람이라면, 생각보다 중요하다.
이 LifeCycle을 앎으로 인해 구현하고자 하는 앱이 조금 더 잘 동작하게끔, 조금 더 논리적으로 돌아가게끔 할 수 있다고 생각한다.
-액티비티 시작-
onCreate()
onStart()
onResume()
-액티비티 화면 표시-
다른 화면 출력 시작
onPause() --> 기존 화면으로 돌아갈시 onRestart() -> onResume()
onStop()
다른 화면 출력 완료(기존 화면 안보임)
onDestroyed()
앱 종료
여기서 주의깊게 확인해야할 건, '액티비티 화면 표시' 는 onCreate(),onStart(),onResume() 이후 이다.
왜냐하면, 적어도 앱 정보의 최신 상태를 유지하기 위해선 onCreate()와 onResume()을 잘 분리 해야하기 때문이다.
필자는 이전에 공공데이터API를 활용하여, 공인 자격증정보를 받아와서 활용하는 앱을 만들어 봤다. onCreate()에서 모든 화면 출력과 데이터 호출 및 파싱을 처리했다. 그러다보니, 자격증 정보를 갱신하기 위해선 무조건 앱을 껏다가 다시 켜야한다.
이 얼마나 미련한 짓인가. 데이터처리를 onResume()에서 하게되면, 처음 실행 유무와 상관없이 화면에 다시 보일 때마다 최신데이터를 보장할 수 있었을텐데,,, 물론속도가 날라가겠지만..
혹여나 이 글을 읽는 안드로이드 꿈나무들은, 생명주기를 고려해서 코드를 디자인 하길 바란다.
생각보다, 생명주기를 알고 빌딩하는 것은 더 나은 결과물을 도출할 수 있는 수단 일 것이다.