더북(TheBook)

1 액티비티 이해하기

 

안드로이드 앱을 만들려면 기본 요소인 액티비티와 액티비티의 수명 주기를 알아야 합니다. 간단하게 살펴봅시다.

 

 

액티비티의 수명 주기

앱에서 어떤 동작이 일어날 때의 화면 상태를 액티비티(activity)라고 합니다. 다시 말해 한 액티비티는 한 화면으로 볼 수 있습니다. 예를 들어 이메일 앱을 열면 로그인 정보를 입력하는 로그인 화면이 뜨거나 이메일 목록이 표시됩니다. 또는 이메일 작성 화면이 뜰 수도 있습니다. 이 화면 각각이 하나의 액티비티가 됩니다. 대부분 앱은 여러 화면, 즉 여러 액티비티로 구성됩니다.

액티비티는 시작되어 종료될 때까지 그 상태가 변화하는데, 상태가 변할 때마다 어떤 일이 일어나는지 정의한 것을 액티비티의 수명 주기(life cycle)라고 합니다. 예를 들어 앱을 사용하는 도중에 전화가 걸려올 때, 앱을 사용하다가 다른 앱으로 전환하고 기존 앱을 사용하지 않을 때, 앱에서 나갔다가 다시 시작할 때 등의 상황에서 액티비티가 어떤 일을 하는지를 정합니다.

안드로이드의 모든 앱은 onCreate() 함수로 시작됩니다. 앱을 시작한다는 신호를 보내는 것으로 자동차로 치면 시동 버튼이라고 볼 수 있습니다. 그다음 onStart() 함수가 배턴을 이어받습니다. 여기에 앱을 시작하는 데 필요한 로그인이나 저장해둔 정보 같은 내용을 추가할 수 있습니다.

onStart()는 액셀을 밟아 자동차가 출발하게 하는 역할을 합니다. 백 버튼을 눌러 다른 화면으로 이동하거나 홈 버튼을 눌러 앱을 종료하면 onPause()onStop()을 거쳐 앱이 사용한 메모리 등을 정리하며 앱을 종료하는 역할을 하는 onDestroy()로 갑니다.

onPause()가 브레이크를 밟기 위해 발을 가져다 댄 정도라면, onStop()은 운전하다 브레이크를 밟아 자동차가 멈춰 선 것이고, onDestory()는 시동을 꺼서 완전히 자동차가 멈춘 경우로 볼 수 있습니다.

특이한 부분은 onResume()입니다. 한번 접근한 화면에 다시 접근할 때는 onCreate()onStart()를 거치지 않고 바로 onResume()으로 갑니다. 자동차 시동을 걸어 둔 상태로 정차했다가 출발할 때 이미 시동이 걸려 있으므로 다시 시동을 걸 필요가 없는 경우입니다.

자동차에 빗대어 간단히 설명했지만, 수명 주기는 상당히 추상적이고 복잡하므로 여기서는 ‘이런 것이 있구나’ 하는 정도로만 알고 있으면 됩니다.

용어 함수는 앱에서 한 동작이 이뤄지는 단위로 보면 됩니다. 앞에서 버튼 클릭을 위해 onClick에 동작을 지정했던 것을 떠올려 보세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.