안드로이드 트레이닝 페이지 대충 번역
http://developer.android.com/training/basics/activity-lifecycle/starting.html
Starting an Activity
기존 프로그램들이 main() 함수에 의해 시작되는 일반적인 배경과는 달리 안드로이드는 각 상황에 맞는 특정한 콜백 메소드를 불러들여 액티비티 객체 안의 코드를 수행한다. 다시 말해서 시작부터 종료까지 모든 단계에 따른 각각의 메소드의 시퀸스화 이다. 이 글에서는 그 중 가장 중요한 라이프사이클 메소드와 가장 처음 새로운 액티비티 객체를 생성하는 메소드의 사용법을 소개한다.
Understand the Lifecycle Callbacks
액티비티의 일생에서 시스템은 다음 그림처럼 피라미드와 같은 일련의 과정을 이루는 라이프사이클 메소드들을 불러온다. 이 피라미드 그림을 따라 동작하며 피라미드의 가장 위야 말로 유저와 본격적인 인터렉트를 할 수 있는 상태라고 할 수 있다. 이 때 유저가 뒤로 가기 등을 눌러 해당 액티비티를 떠나면 액티비티의 상태는 피라미드의 한 계단을 내려오게 된다. 때에 따라서 액티비티가 소멸되지 않고 가려진 상태로 대기를 하는 경우도 있다. 예를 들어 화면 전환과 같은 경우를 말한다. 그림을 보면 쉽게 이해할 수 있다.

그림에 있는 콜백 함수들을 언제나 모두 쓰는 것은 아니지만 각각을 이해하고 구현해두는 것은 어플이 유저의 기대대로 잘 작동하도록 하는 좋은 방법이다. 콜백함수들의 내용들을 잘 구현해두면 다음 이점들을 얻을 수 있다.
포커스를 얻거나 일는 등의 전환 상태가 발생되더라도 다음 세 가지의 상태만은 static(시스템에 잔류) 하다.
Resumed
액티비티가 앞화면에 있어 포커스를 얻고 유저와 인터렉트 한다. (이를 running 상태라고도 한다.)
Paused
부분적으로 가려진 상태를 말하며 작은 창 등에 의해 포커스를 뺏긴 경우이다. 이 때, 유저에 의한 입력을 받을 수 도 없고 어떠한 코드도 수행할 수 없다.
Stopped
액티비티가 완전히 포커스를 잃어 화면에 표시되지 않고 백그라운드에 들어간다. 이 상태에 들어가면 액티비티 객체와 그 멤버변수 값들은 보존되지만 코드를 수행할 수는 없게 된다.
이 외의 Created나 Started 상태는 "일시적" 이다. 예를 들어 onCreate() 함수가 불려오고 나면 onStart() 함수가 재빨리 불려진다.