안드로이드 배움의 매우 기초단계인 Life Cycle~
안드로이드는 Activity stack에 실행중인 Activity를 담아서 관리를 한다.
새 Activity를 실행시키면 stack의 맨 위로 추가가 되고 이 Activity가 제거되면 그 다음 Activity가 실행된다.
게임을 하던 중 갑자기 전화가 걸려오면 게임 화면을 잠시 접어두고 전화가 걸려온 화면을 펼쳐야 하기 때문에
응용프로그램은 자신의 메모리, 자원, 상태를 관리하기 위해 Life cycle이 필요한 것!
package com.engmomo; import android.app.Activity; import android.os.Bundle; import android.util.Log; //생명주기 확인 소스 public class LifeCycleActivity extends Activity { @Override protected void onDestroy() { Log.d("test", "ActivityLifeCycle:onDestroy"); super.onDestroy(); // Activity가 파괴되기 직전에 호출되는 메서드. // 자발적으로 종료시키려는 경우와 자원부족으로 자동으로 종료시키려는 경우에 호출. } @Override protected void onPause() { Log.d("test", "ActivityLifeCycle:onPause"); super.onPause(); // Activity stack에 다른 프로세스가 차지하게 되면 현재 Activity가 뒤로 밀려나게 됨. // 이때 호출되는 메서드. } @Override protected void onRestart() { Log.d("test", "ActivityLifeCycle:onRestart"); super.onRestart(); } @Override protected void onResume() { Log.d("test", "ActivityLifeCycle:onResume"); super.onResume(); // Activity stack의 제일 위에 놓인 프로세스가 되면 호출되는 메서드. // 활동의 실행에 필요한 자원들을 준비하기에 가장 적합하다. // (오디오, 동영상, 애니메이션을 시작하기에 적합) } @Override protected void onStart() { Log.d("test", "ActivityLifeCycle:onStart"); super.onStart(); } @Override protected void onStop() { Log.d("test", "ActivityLifeCycle:onStop"); super.onStop(); } @Override public void onCreate(Bundle savedInstanceState) { Log.d("test", "ActivityLifeCycle:onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.main); // Activity가 실행되면 맨 처음 호출되는 메서드. // 레이아웃, data binding 과 같은 초기 설정작업을 수행. } }실행하고 나서 홈버튼 클릭시
10-06 14:39:34.495: DEBUG/test(394): ActivityLifeCycle:onCreate
10-06 14:39:34.644: DEBUG/test(394): ActivityLifeCycle:onStart
10-06 14:39:34.644: DEBUG/test(394): ActivityLifeCycle:onResume
10-06 14:39:45.503: DEBUG/test(394): ActivityLifeCycle:onPause
10-06 14:39:46.053: DEBUG/test(394): ActivityLifeCycle:onStop
실행후 이전 버튼 클릭시
10-06 14:43:00.123: DEBUG/test(394): ActivityLifeCycle:onRestart
10-06 14:43:00.123: DEBUG/test(394): ActivityLifeCycle:onStart
10-06 14:43:00.133: DEBUG/test(394): ActivityLifeCycle:onResume
10-06 14:43:03.493: DEBUG/test(394): ActivityLifeCycle:onPause
10-06 14:43:04.143: DEBUG/test(394): ActivityLifeCycle:onStop
10-06 14:43:04.143: DEBUG/test(394): ActivityLifeCycle:onDestroy
'Android' 카테고리의 다른 글
안드로이드 토스트 띄우기 (0) | 2012.08.19 |
---|