안녕하세요, James 입니다.

 

업무에 시달리다 보니 정말 오랜만에 포스팅을 하게 됩니다.

 

오늘은 Android Life-cycle 관련한 내용을 정리 하고자 합니다.

생명주기라는 의미로 Android App 구동되는 시점부터 종료 되는 시점까지 어떤 함수들이 호출 되고 어떤 동작들을 하고 있는지 확인 해보도록 하겠습니다.

 

Activity Life Cycle (안드로이드 Activity 생명주기)

 

이미 C, C++ 또는 Java 프로그래밍을 해보신 분들이라면 아시겠지만 main() 함수를 통해 프로그램이 구동 됩니다.

이와 비슷하게 Android 에서도 Activity 시작은 onCreate() 라는 callback 함수를 호출하면서 시작하게 됩니다


1. Activity Life Cycle Diagram

이미지 출처 : https://developer.android.com/guide/components/activities/activity-lifecycle.html >


그래프는 안드로이드 Activity 라이프 사이클을 보여주고 있습니다.


여기에 보여주고 있는 모든 함수들은  callback 함수로 Activity 생성되어 종료되는 시점까지 자동으로 호출 되므로 사용자가 모두 구현할 필요는 없지만 각각의 함수들을 이해하고 사용할 알아야 합니다



2. Callback 함수  


No

Callback  함수

Description

1

onCreate()

Activity 생성되면 가장먼저 호출 되는 callback 함수

2

onStart()

Activity 사용자에게 보여지기 직전에 호출 되는 callback 함수

3

onResume()

사용자가 응용프로그램과 상호 작용을 있는 상태에 호출되는 함수

- 사용자가 응용프로그램을 사용할 있는 상태를 의미

4

onPause()

Activity 중지된 상태로 사용자로 부터 어떠한 입력도 받을 없고 어떤

코드도 실행 없는 상태

- 다른 Activity 실행되어 Activity Stack 최상단으로 올라가는 경우 호출

5

onStop()

Activity 이상 보여지지 않는 경우 호출

6

onRestart()

Activity onStop() 호출 이후에 재시작 되는 경우 호출 되는 함수

7

onDestroy()

시스템이 Activity 종료하기 직전에 호출 되는 callback 함수


위 표는 Activity Life Cycle 에서 호출되는 Callback 함수들을 나열한 것입니다. 

언제 어떤 상황에서 호출 되는지 잘 알아 두셔야 앱을 개발하실때 편하게 사용 하실 수 있습니다. 


우리가 일반적으로 가장 많이 구현하는 함수는 onCreate() 가 되며 onResume() 과 onPause() 도 앱의 성격에 따라 사용빈도수가 높은 편입니다. 

이 callback 함수들의 사용 방법등은 차후에 다루도록 하겠습니다. 



3. Sample Code

package com.tutorial.james.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

private static String TAG = MainActivity.class.getSimpleName();

/** Activity 가 처음 생성될때 호출 되는 함수 */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "The onCreate() called");
}

/** Activity 가 보여지기 직전에 호출 되는 함수 */
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "The onStart() called");
}

/** Activity 가 보여지고 input 을 받을 수 있는 상태 */
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "The onResume() called");
}

/** 다른 Activity 가 호출되는 시점에 호출 되는 함수 */
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "The onPause() called");
}

/** Activity 가 더이상 보이지 않을때 호출 되는 함수 */
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "The onStop() called");
}

/** Activity 가 종료되기 직전에 호출 되는 함수 */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "The onDestroy() called");
}
}


Activity 가 실행되고 종료될때까지 호출되는 Callback 함수의 순서를 확인하기 위해 debug log 를 찍어 보는 코드 입니다. 


상기 코드로 앱을 실행 후 종료 시 아래와 같은 로그를 확인 할 수 있습니다. 


Activity Life Cycle 을 잘 이해 하시면 안드로이드 앱 개발에 많은 도움이 되실 겁니다. 


이상으로 Android Activity Life Cycle 에 대한 내용 마무리 하겠습니다. 



P.S. 최근 업무에 시달리고, 육아에 시달리다 보니 강좌를 자주 올리지 못하고 있습니다. 최대한 짬을 내서 올릴 수 있도록 하겠습니다. 

블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,