본문 바로가기
Android

[Android] Life Cycle

by 코드디코더 2011. 10. 6.

안드로이드 배움의 매우 기초단계인 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