본문 바로가기
Android

[안드로이드/JAVA] Activity (LifeCycle, 활동 수명 주기)

by nanee_ 2022. 2. 20.
728x90
반응형
SMALL

Activity

: 앱의 한 화면의 java 코드를 입력하는 곳이다.

Activity가 실행되는데 활동 수명 주기(Life Cycle)라는 동작순서가 존재한다.

 

 

Life Cycle, 활동 수명 주기

 

활동 수명 주기에 관한 이해  |  Android 개발자  |  Android Developers

활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페

developer.android.com

 

 

1. onCreate()

: 활동 생성,  액티비티가 생성된다.

 

2. onStart()

: 활동  시작, 사용자에게 표시되고, 앱고 사용자 간의 상호작용을 준비한다.

 

3. onResume()

: 활동 재개, 앱과 사용자 간의 상호 작용이 일어난다.

 

4. onPause()

: 활동 중단, 활동이 완전히 소멸되는 것이 아닌 포그라운드에 있지 않을 때 콜백된다.

  -> onResume() 로 돌아갈 수 있다.

 

5. onStop()

: 활동 중지, 활동이 더이상 사용자에게 보여지지 않는 상태이다.

  -> onStart() 로 돌아갈 수 있다.

  

 

6. onDestroy()

: 활동이 소멸되기 전에 호출되는 메서드로,

  사용자가 활동을 닫거나, finish() 가 호출되거나, 기기 회전 및 멀티 윈도우 모드에 호출된다.

 

 

public class MainActivity extends AppCompatActivity {

    private String TAG1 = "LifeCycle";

    @Override
//  메모리에 올림, 활동 생성
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG1, "onCreate -- 활동 생성");
    }

    @Override
//  활동이 시작됨 상태에 들어가면 호출됨, 사용자에게 표시됨, 상호작용 준비
    protected void onStart() {
        super.onStart();
        Log.d(TAG1, "onStart -- 활동 시작, 사용자에게 표시됨");
    }

    @Override
//  활동이 재개됨 상태에 들아가면 호출됨, 앱이 사용자와 상호작용
    protected void onResume() {
        super.onResume();
        Log.d(TAG1, "onResume -- 활동 재개, 앱&사용자 상호작용");
    }

    @Override
//  사용자가 활동을 떠나는 첫번째 신호 (소멸 X), 활동이 포그라운드에 있지 않음
    protected void onPause() {
        super.onPause();
        Log.d(TAG1, "onPause -- 활동 중단, 완전히 소멸 X");
    }

    @Override
//  사용자에게 활동이 더이상 표시되지 않는 상태
    protected void onStop() {
        super.onStop();
        Log.d(TAG1, "onStop -- 활동 중지, 사용자에게 표시되지 않음");
    }

    @Override
//  활동이 소멸되기 전에 호출됨 (사용자가 활동을 닫거나, finish()가 호출됨 또는 기기 회전, 멀티윈도우 모드)
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG1, "onDestroy -- 활동 소멸");
    }
}

 

처음 에뮬레이터를 실행하면 

onCreate() -> onStart() -> onResume() 메서드 순서로 실행되고, 화면이 사용자에게 보여진다.

 

 

 

 

다른 앱으로 전환하기 위한 동작을 실행했을 경우

onPause() -> onStop() 메서드 순서로 실행된다.

 

 

 

다시 앱을 실행했을 경우에는

onStart() -> onResume() 메서드 순서로 실행된다.

 

 

앱을 꺼버렸을 경우,

onDestory() 메서드가 실행되고 활동이 소멸된다.

 

 

화면 회전이 이뤄졌을 경우,

onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume() 메서드 순서로 실행된다.

즉, 활동이 소멸되고 다시 생성된다.

 

 

 

 

앱을 개발할 경우에 이 활동 수명 주기를 잘 활용해서 개발을 해야한다.

 

 

728x90
반응형
LIST