본문 바로가기

Android

Android_1(Activity 생명 주기)

Activity는 특정 상태(앱이 시작되고 종료될 때까지의 모든 상태)에 따라 호출되는 CallBack 함수들이 있다.
특정 상태에 대한 CallBack 함수에서 특정 소스를 입력한다고 생각하면 된다.
예를들어 앱이 시작될때(특정 상태)는 시작에 관련된 소스(특정 소스)를 입력한다!

Activity의 생명주기

  1. onCreate() : 최초 실행 CallBack 함수.View 구성요소 초기화
    setContentView()를 통한 레이아웃 정의

  2. onStart() : onCreate() 함수 바로 뒤 실행.
    Activity가 시작단계에 돌입, 최종 준비 단계

  3. onResume() : Activtiy와 사용자의 상호작용 돌입 직전 단계.
    앱의 핵심 기능을 구현.

  4. onPause() : Activity가 ‘일시중지’상태에 전환될때 호출되는 함수.
    이후 onStop(), onRestart()가 실행될 수 있음.
    사용자의 데이터 저장, 네트워크 호출, DB 트랜잭션을 실행하면 안됨.
    항상 onResume() 뒤에 옴. 앱에서 ‘취소’ , ‘최근’ 버튼을 누를때 실행.

  5. onStop() : 사용자에게 더이상 보여지지 않을때, 곧 종료될때, 새로운 Activity가 실행될때 호출되는 함수.
    다시 시작되면 onReStart()를, 곧 완전히 종료되면 onDestroy()를 호출함.

  6. onRestart() : onStop()에서 다시 앱이 실행되려할때 호출.
    중지된 시간부터의 상태를 복원하며 이 뒤에 항상 onStart()가 실행됨.

  7. onDestroy() : Activity가 완전히 제거되기 전에 호출되는 함수.
    Activity의 모든 리소스를 해제.

 

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var intent = Intent(this, Lifecycle_activity::class.java)
startActivity(intent)
}​
class Lifecycle_activity : AppCompatActivity() {

    val thisName = "Lifecycle_activity"

    // step_1
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_lifecycle)
        Log.d(thisName,"onCreate()")
    }

    // step_2
    override fun onStart() {
        super.onStart()
        Log.d(thisName,"onStart()")
    }

    // step_3
    override fun onResume() {
        super.onResume()
        Log.d(thisName,"onResume()")
    }

    // step_4
    override fun onPause() {
        super.onPause()
        Log.d(thisName,"onPause()")
    }

    // step_5
    override fun onStop() {
        super.onStop()
        Log.d(thisName,"onStop()")
    }

    // step_5
    override fun onRestart() {
        super.onRestart()
        Log.d(thisName,"onRestart()")
    }

    // step_6
    override fun onDestroy() {
        super.onDestroy()
        Log.d(thisName,"onDestroy()")
    }
}​

 

앱 최초 실행 했을 때 Log

 

D/Lifecycle_activity: onCreate()
D/Lifecycle_activity: onStart()
D/Lifecycle_activity: onResume()

 

앱 종료했을 때

D/Lifecycle_activity: onPause()
D/Lifecycle_activity: onStop()
D/Lifecycle_activity: onDestroy()

 

'최근' 버튼 눌렀을 때

D/Lifecycle_activity: onPause()
D/Lifecycle_activity: onStop()

 

앱 재실행 했을 때

D/Lifecycle_activity: onRestart()
D/Lifecycle_activity: onStart()
D/Lifecycle_activity: onResume()

 

 

참고 : https://developer.android.com/guide/components/activities/intro-activities