안 쓰던 블로그

안드로이드-Activity Life Cycle 본문

안드로이드

안드로이드-Activity Life Cycle

proqk 2020. 8. 5. 00:04
반응형

액티비티-앱의 한 화면이다

화면 전환->액티비티 전환

 

엑티비티 Life Cycle이 중요하다!! (https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko)

1. onCreate
-activity가 만들어질 때 단 한 번만 호출 된다
-activity를 만들때 단 한 번만 하면 되는 작업들을 여기에서 해 준다

-뭔가 충돌이 나서 강제로 다시 시작될 때 호출이 되기도 한데 정말 드문 상황이다


2. onStart


3. onResume☆
-다시 앱으로 돌아올때 무조건 호출된다
-activity가 다시 호출될 때 하면 되는 작업들을 여기에서 해 준다

 

4. onPause
-화면의 일부가 보이지 않을 때(화면을 내리는 중)


5. onStop
-화면 전부가 보이지 않을 때(앱 종료나 다른 앱으로 넘어감)

-여기까지 했던 작업을 저장, 다시 돌아오면 onPause로 넘긴다


6. onDestroy


확인하는 방법

 

액티비티 파일을 하나 만들고 아래처럼 쓴다

package com.example.gurustudy

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.ui_practice)

        Log.d("life_cycle","onCreate")
    }

    override fun onStart() {
        super.onStart()
        Log.d("life_cycle","onStart")
    }

    override fun onResume() {
        super.onResume()
        Log.d("life_cycle","onResume")
    }

    override fun onPause() {
        super.onPause()
        Log.d("life_cycle","onPause")
    }

    override fun onStop() {
        super.onStop()
        Log.d("life_cycle","onStop")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d("life_cycle","onDestroy")
    }
}

 

애뮬레이터 실행

로그 필터하면 저렇게 3개 나온다

onPause, Stop, Destroy는 아직 실행 안 되었기 때문이다

 

에뮬레이터에서 홈화면으로 가면 onStop실행(완전 안 보이기 때문)

근데 onStop가려면 무조건 onPause를 지나야 해서 onPause-onStop 순으로 찍힘

 

다시 애플리케이션을 띄우면 onStart-onResume 순서대로 찍힌다

onRestart()도 지나지만 로그를 안 찍었기 때문에 안 나오는 것

 

(참고)

 

 

 

 

 

 

 

반응형
Comments