<aside> π‘ Activity LifeCycle
</aside>
Activity LifeCycleμ Activityκ° μμλκ³ μ’ λ£λλ μμ κΉμ§μ μνλ₯Ό Activity LifeCycleμ΄λΌ νλ€.
Activity LifeCycleμλ onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()κ° μλ€.
onCreate()
-μ΄ ν¨μλ νμμ μΌλ‘ ꡬνν΄μΌνλ€.
-μ 체 LifeCycle λμ "ν λ²"λ§ λ°μνλ€.
-μ΄ λ©μλμλ XML, λ©€λ² λ³μ μ μ, μΌλΆ UIκ΅¬μ± λ± μ€μ μ νλ€.
onStart()
-νμ±μνμ λ€μ΄κ°λ©΄ μ΄ ν¨μκ° νΈμΆλλ€. (μ¬μ©μνν 보μ¬μ§κΈ° μ§μ )
-νΈμΆλλ©΄ ν¬κ·ΈλΌμ΄λμ λ³΄λ΄ μνΈμμ©μ ν μ μλλ‘ μ€λΉνλ€.
-μ£Όλ‘ UIλ₯Ό κ΄λ¦¬νλ μ½λλ₯Ό μ΄κΈ°ν νλ€. μ΄ λ©μλλ λ§€μ° λΉ λ₯΄κ² μλ£λκ³ λ°λ‘ onResumeμ νΈμΆνλ€.
onResume()
-μ¬μ©μνν νλ©΄μ 보μ¬μ§κ³ μνΈμμ©νλ λ©μλμ΄λ€.
-μ΄λ€ μ΄λ²€νΈκ° λ°μνμ¬ μ±μμ ν¬μ»€μ€κ° λ λ λκΉμ§ μ΄ μνμ 머무λ₯Έλ€.
-μ΄ μνμμλ μλͺ μ£ΌκΈ° ꡬμ±μμκ° ν¬κ·ΈλΌμ΄λμμ μ¬μ©μμκ² λ³΄μ΄λ λμ μ€νν΄μΌ νλ λͺ¨λ κΈ°λ₯μ νμ±ν νλ€. (μ: μΉ΄λ©λΌ 미리보기)
-λ°©ν΄κ° λλ μ΄λ²€νΈκ° λ°μνλ©΄ μΌμμ€μ§ μνμ λ€μ΄κ°κ³ , μμ€ν μ΄ onPause()λ₯Ό νΈμΆνλ€. (μ: μ νκ° μ€κ±°λ, μ¬μ©μκ° λ€λ₯Έ νλ©΄μΌλ‘ μ΄λνκ±°λ, κΈ°κΈ° νλ©΄μ΄ offλ λ)
onPause()
-μ¬μ©μκ° νλ©΄μ λ λ λ μμ€ν μ΄ μ²« λ²μ§Έλ‘ μ΄ λ©μλλ₯Ό νΈμΆνλ€. (μνκ° ν¬κ·ΈλΌμ΄λμ μμ§ μκ² λμλ€λ κ²μ λνλ)
-ν¬κ·ΈλΌμ΄λμ μμ§ μμ λ μ€νν νμκ° μλ κΈ°λ₯μ λͺ¨λ μ μ§ν μ μλ€. (μ: μΉ΄λ©λΌ 미리보기 μ μ§)
-μμ€ν 리μμ€, μΌμ νΈλ€(GPS), μ¬μ©μκ° νμλ‘ νμ§ μμ λ λ°°ν°λ¦¬ μλͺ μ μν₯μ λ―ΈμΉ μ μλ λͺ¨λ 리μμ€λ₯Ό ν΄μ ν μλ μλ€. (UI κ΄λ ¨ 리μμ€μ μμ μ μμ ν ν΄μ νκ±°λ μ‘°μ ν λλ onPauseλ³΄λ€ onStopμ μ¬μ©νλ κ²μ΄ μ’λ€. λ©ν°μλμ° λͺ¨λ or νλ©΄λΆν λλ¬Έ)
-μ΄ λ©μλλ μμ£Ό μ κΉ μ€νλλ―λ‘ μ μ₯ μμ μ νκΈ°μλ μμμ΄ λΆμ‘±ν μ μλ€. μ¬μ©μ λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ, λ€νΈμν¬λ₯Ό νΈμΆνκ±°λ, λ°μ΄ν°λ² μ΄μ€ νΈλμμ μ μ€νν΄μλ μλλ€. μ΄ λ©μλκ° λλκΈ° μ μ μλ£νμ§ λͺ»ν μ μλ€. λ¬΄κ±°μ΄ μμ μ onStopμμ νκ³ λ°μ΄ν° μ μ₯μ viewModel, onSaveInstanceState()λ₯Ό μ°Έμ‘°.
βοΈ μΌλ°μ μΈ λ€μ΄μΌλ‘κ·Έλ activityκ° μλκΈ° λλ¬Έμ onPause()λ₯Ό νΈμΆνμ§ μλλ€. κΆνμμ²μ λ€μ΄μΌλ‘κ·Έ μ²λΌ 보μ΄λ uiμΌλΏ μ€μ λ‘ λμμ κΆνμ νμ©ν κ²μΈμ§ κ±°μ ν κ²μΈμ§μ λν uiλ₯Ό λμ°λ―λ‘ onPause()λ₯Ό νΈμΆνλ€.
onStop()
-ν¬μ»€μ€κ° μμ ν λΉ μ‘μ λ μμ€ν μ μ΄ μ½λ°± λ©μλλ₯Ό νΈμΆνλ€. (νλ©΄μ μ²΄κ° κ°λ €μ‘μ λ λλ λ°±κ·ΈλΌμ΄λλ‘ κ°μ λ)
-μ΄ λ©μλμμλ μ±μ΄ μ¬μ©μμκ² λ³΄μ΄μ§ μλ λμ μ±μ΄ νμνμ§ μλ 리μμ€λ₯Ό ν΄μ νκ±°λ μ‘°μ ν΄μΌ νλ€. (μ: μ λλ©μ΄μ μ€μ§, μΈλ°ν μμΉ μ λ°μ΄νΈμμ λλ΅μ μΈ μμΉ μ λ°μ΄νΈλ‘ μ νν μ μλ€)
-onStop()μμ λ¬΄κ±°μ΄ μμ μ μ€νν΄μΌ νλ€κ³ νλλ° μλ₯Όλ€μ΄ μ 보λ₯Ό λ°μ΄ν°λ² μ΄μ€μ μ μ₯ν΄μΌνλλ° μ μ ν μμΉλ₯Ό μ°Ύμ§ λͺ»νλ€λ©΄ μ΄ λ©μλμμ μ μ₯ν μ μλ€. (νμ§λ§ μ΄ ν¨μλ νμ νΈμΆλλ κ²μ μλλ©° λ©λͺ¨λ¦¬κ° λΆμ‘±ν κ²½μ° νΈμΆμ΄ μλ μλ μλ€)
onDestroy()
-Activityκ° μλ©ΈλκΈ° μ μ νΈμΆλλ€. μμ€ν μ λ€μ μ€ νλμ ν΄λΉν λ μ΄ μ½λ°±μ νΈμΆνλ€.
-onStop()μμ ν΄μ νμ§ μμ λͺ¨λ 리μμ€λ₯Ό ν΄μ ν΄μΌ νλ€.
-μ΄ λ©μλκ° νΈμΆλλ κ²½μ° μμ€ν μ΄ μ¦μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ€μ, μλ‘μ΄ κ΅¬μ±μμ μΈμ€ν΄μ€μ κ΄ν΄ onCrate()λ₯Ό νΈμΆνλ€.
onRestart()
-onStop()μνμ μλ νλ©΄μ΄ λ€μ μ κ·Ό νμ λ νΈμΆλλ μ½λ°±ν¨μ
μ‘ν°λΉν°μμ λ¬Έμκ° μμ κ²½μ°(νλ©΄μ΄ μΌλΆ κ°λ €μ‘μ λ)
-onCreate() ~ onResume() -> λ¬Έμμ΄ -> onPasue() -> λ¬Έμμ¬λΌμ§ -> onResume()
A μ‘ν°λΉν°μμ B μ‘ν°λΉν°λ‘ μ΄λ
-A onCreate() ~ onResume() -> νλ©΄μ΄λ ν΄λ¦ -> A onPasue() -> B onCreate() ~ onResume() -> A onStop() .. onDestroy() (μν©μ λ°λΌ)
μ‘ν°λΉν°μμ λ°±κ·ΈλΌμ΄λλ‘ κ°λ€ λ€μ ν¬κ·ΈλΌμ΄λλ‘ λ³΅κ· μ
-onCreate() ~ onResume() -> νλ²νΌ(λ°±κ·ΈλΌμ΄λ) -> onPause() β onStop() -> μ± λ³΅κ· -> onRestart() -> onStart() -> onResume()