my repository

Android :: Activity, Fragment ์ƒ๋ช…์ฃผ๊ธฐ ๋ณธ๋ฌธ

IT/Android (Kotlin)

Android :: Activity, Fragment ์ƒ๋ช…์ฃผ๊ธฐ

hjin 2022. 3. 1. 16:49

๐Ÿ’กActivity LifeCycle

Activity๋ž€ ?

  • ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” UI ๊ตฌ์„ฑ์„ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์š”์†Œ
  • ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์€ ํ™”๋ฉด์— UI๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œ ํ•˜๋‚˜์˜ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๋ฉฐ, ์•ฑ ์‹คํ–‰ ์‹œ ์ง€์ •๋œ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ UI๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
  • ์‚ฌ์šฉ์ž๋“ค์ด ์•ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ™”๋ฉด์„ ์ „ํ™˜ํ•  ๋•Œ ๋งˆ๋‹ค ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์‹คํ–‰, ์ผ์‹œ์ค‘์ง€, ์ค‘์ง€์˜ ์ƒํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.
    • ์‹คํ–‰ : ํ™”๋ฉด ์ƒ์— ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ˜„์žฌ ๋ณด์ด๊ณ  ์žˆ๋Š” ์ƒํƒœ
    • ์ผ์‹œ์ค‘์ง€ : ์‚ฌ์šฉ์ž์—๊ฒŒ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋ณด์ด๊ธด ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ์— ํฌ์ปค์Šค๊ฐ€ ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ
    • ์ค‘์ง€ : ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์–ด ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ

=> ์ฆ‰, ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒํƒœ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š”์ง€ ์•ˆ๋ณด์ด๋Š”์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๊ฒŒ ๋˜๋Š” ๊ฒƒ์ผ๊นŒ?

=> '์Šคํƒ' ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค. ๋จผ์ € ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์„œ ๋น ์ ธ๋‚˜๊ฐˆ ๋•Œ๋Š” ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋น ์ ธ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค. (ํ›„์ž…์„ ์ถœ)

 

 

์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ

์ด์ฒ˜๋Ÿผ, ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด๊ฐ€์„œ ์†Œ๋ฉธ๋˜๊ธฐ๊นŒ์ง€์˜ '์ƒ๋ช…์ฃผ๊ธฐ'๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

onCreate()

  • ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜์–ด, ์•กํ‹ฐ๋น„ํ‹ฐ ๋‚ด ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋“ค(button, edittext ๋“ฑ)์„ ์ด ๋ฉ”์†Œ๋“œ ๋‚ด์—์„œ ์ดˆ๊ธฐํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • UI ๋ ˆ์ด์•„์›ƒ์„ ์ฝ”๋“œ ์ƒ์œผ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ setContentView()๋ฅผ ํ†ตํ•ด ์ •์˜ํ•ด์ฃผ๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

 

onStart()

  • ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด๊ธฐ ์ง์ „์— ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
  • ์ด ๋‹จ๊ณ„๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋๋‚˜๊ณ , onResume() ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

onResume()

  • ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ™”๋ฉด ์ƒ์— ๋ณด์—ฌ์ง€๊ฒŒ ๋˜๋ฉด์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์–ด๋– ํ•œ ๋™์ž‘๋„ ๋ฐ›์ง€ ์•Š์•˜์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ
  • ์ด ์ƒํƒœ์— ๋“ค์–ด๊ฐ”์„ ๋•Œ ์•ฑ์ด ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•œ๋‹ค.
  • ์–ด๋– ํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์•ฑ์—์„œ ํฌ์ปค์Šค๊ฐ€ ๋– ๋‚  ๋•Œ๊นŒ์ง€ ์ด ์ƒํƒœ์— ๋จธ๋ฌด๋ฅธ๋‹ค.

onPause()

  • ์ผ์‹œ์ •์ง€ ์ƒํƒœ
  • ์•ฑ์„ ์‚ฌ์šฉ ์ค‘์— ์ „ํ™”๊ฐ€ ์˜ค๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ์ด๋™ํ•˜๋Š” ๋™์ž‘์ด ๋ฐœ์ƒํ•˜๋ฉด onResume() ์ƒํƒœ์— ์žˆ๋˜ ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” onPause()๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‹ค ์œ ์ €๊ฐ€ ๋‹ค์‹œ ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋Œ์•„์˜ค๋ฉด, ๋‹ค์‹œ onResume()์„ ํ˜ธ์ถœํ•œ๋‹ค.
  • ์ฃผ์˜ํ•  ์  : ์—ฌ๊ธฐ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ๋„คํŠธ์›Œํฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•ˆ๋จ → ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ๋งŒํผ ์ถฉ๋ถ„ํ•œ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Œ → ์ด์™€ ๊ฐ™์€ ์ž‘์—…์€ onStop()์—์„œ !

onStop() / onRestart() / onStart()

  • onPause()๋Š” ๋งค์šฐ ์งง๊ธฐ ๋•Œ๋ฌธ์—, ์œ ์ €์—๊ฒŒ ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ๋ณด์ด๊ณ  ๋”์ด์ƒ ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋˜๋ฉด onStop()์ด ํ˜ธ์ถœ๋œ๋‹ค.
  • onStop()์—์„œ ์œ ์ €๊ฐ€ ๋‹ค์‹œ ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜๋ฉด, onRestart()๋ฅผ ๊ฑฐ์ณ์„œ, onStart()๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์œ ์ €๊ฐ€ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ finish() ํ•˜๊ฑฐ๋‚˜, ์‹œ์Šคํ…œ์ด ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ finish() ์‹œํ‚จ๋‹ค๋ฉด, onDestroy()๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‚ฌ๋ผ์ง„๋‹ค.

onDestroy()

  • ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค.

 


๐Ÿ’กFragment LifeCycle

Fragment๋ž€ ?

  • ์•กํ‹ฐ๋น„ํ‹ฐ ๋‚ด์— ์ƒ์„ฑ๋˜๋Š”, UI ๊ตฌ์„ฑ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ ๋‹จ์œ„๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ํ•œ ๋ฒˆ ์ž‘์„ฑ๋œ fragment๋Š” ์—ฌ๋Ÿฌ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ UI ๊ตฌ์„ฑ์— ์†Œ์š”๋˜๋Š” ์ž‘์—…๋Ÿ‰์„ ๋งŽ์€ ๋ถ€๋ถ„ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋ž˜๊ทธ๋จผํŠธ๋Š” ์ž์ฒด ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ , ์ž์ฒด ์ž…๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์œผ๋ฉฐ, ์•กํ‹ฐ๋น„ํ‹ฐ ์‹คํ–‰ ์ค‘์— ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋ชจ๋“ˆ์‹ ์„น์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ์— ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "ํ•˜์œ„ ์•กํ‹ฐ๋น„ํ‹ฐ"์™€ ๊ฐ™์€ ๊ฐœ๋…) - ๊ตฌ๊ธ€

ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ

๋‹ค์Œ์€ ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์ด๋‹ค.

 

onAttach()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์•กํ‹ฐ๋น„ํ‹ฐ์— attach ๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
  • ํ˜ธ์ถœ๋˜๋ฉด์„œ ์ธ์ž๋กœ context๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  • ์•„์ง ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์™„๋ฒฝํ•˜๊ฒŒ ์ƒ์„ฑ๋œ ์ƒํƒœ๋Š” ์•„๋‹ˆ๋‹ค.

onCreate()

  • ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ์˜ onCreate()์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์—ฌ๊ธฐ์„œ ์ดˆ๊ธฐํ™”์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.
  • ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ๋„˜๊ฒจ์ค€ ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๋ณ€์ˆ˜์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ, ์•กํ‹ฐ๋น„ํ‹ฐ์™€๋Š” ๋‹ฌ๋ฆฌ ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ onCreate()์—์„œ๋Š” view์™€ ๊ด€๋ จ๋œ UI ์ž‘์—…์„ ํ•  ์ˆ˜ ์—†๋‹ค.

onCreateView()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ์—์„œ UI๋ฅผ ๊ทธ๋ฆด ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ฝœ๋ฐฑ์ด๋‹ค.
  • Layout์„ inflateํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ , view ๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ UI์™€ ๊ด€๋ จ๋œ ๋ฐ”์ธ๋”ฉ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.
  • onCreateView์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” container๊ฐ€ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ViewGroup์ด๋ฉฐ, ์—ฌ๊ธฐ์— ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋˜ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ savedInstanceState ๋Š” Bundle ๊ฐ์ฒด๋กœ, ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์žฌ๊ฐœ๋˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ์ƒํƒœ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_search_theme, container, false)
    }

 

onActivityCreated()

  • ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ onCreate() ์‹คํ–‰์ด ๋๋‚œ ํ›„ ํ˜ธ์ถœ๋œ๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ๋ทฐ๊ฐ€ ๋ชจ๋‘ ์ƒ์„ฑ๋˜๊ณ , ์—ฐ๊ฒฐ๋œ ์ƒํƒœ
  • view์˜ ๋ณ€๊ฒฝ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

onStart()

  • ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๊ธฐ ์ง์ „ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์‹œ์ž‘๋จ ์ƒํƒœ

onResume()

  • ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ ์‹œ์ 
  • ์–ด๋– ํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ๊ฐ€๋ ค์ง€๊ธฐ ์ „๊นŒ์ง€ ์ด ์ƒํƒœ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

onPause()

  • ๋ถ€๋ชจ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์œ„๋กœ ์˜ฌ๋ผ์˜ค๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ add๋˜๋Š” ๊ฒฝ์šฐ ์ผ์‹œ์ •์ง€ ์ƒํƒœ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  • UI ๊ด€๋ จ ์ฒ˜๋ฆฌ๋ฅผ ์ •์ง€ํ•˜๊ณ , ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

onStop()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์™„์ „ํžˆ ๊ฐ€๋ ค์ง€๋Š” ๊ฒฝ์šฐ, onStop()์ด ์‹คํ–‰๋œ๋‹ค.
  • ์‹œ์Šคํ…œ์—์„œ onStateInstance()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ UI์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ, ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๋‹ค์‹œ ๋„์šฐ๋ฉด ์ด์ „ ์ƒํƒœ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ง„๋‹ค.

onDestroyView()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ์™€ ๊ด€๋ จ๋œ view๊ฐ€ ์ œ๊ฑฐ๋  ๋•Œ ์‹คํ–‰๋œ๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ํ”„๋ž˜๊ทธ๋จผํŠธ ์ƒ์„ฑ ์‹œ addToBackStack() ์„ ์š”์ฒญํ–ˆ์„ ๊ฒฝ์šฐ, onDestroy()๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ธ์Šคํ„ด์Šค๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ฐ€ ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ๋‹ค์‹œ ๋ถ€๋ฅผ ๋•Œ onCreateView()๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋‹ค์‹œ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๊ฒŒ ํ•œ๋‹ค.

onDestroy()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ onCreate → onCreateView๋กœ ์ดˆ๊ธฐํ™”ํ•  ๋ฆฌ์†Œ์Šค๋“ค๊ณผ ๋ทฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœํ–ˆ๋Š”๋ฐ, Destroyํ•  ๋•Œ๋Š” ๋ฐ˜๋Œ€๋กœ onDestroyView → onDestroy ์ˆœ์œผ๋กœ view๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , onDestroy()๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • view๊ฐ€ ์ œ๊ฑฐ๋œ ํ›„ ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์™„์ „ํžˆ ์†Œ๋ฉธ๋˜๊ธฐ ์ „์— ํ˜ธ์ถœ๋œ๋‹ค.

onDetach()

  • ํ”„๋ž˜๊ทธ๋จผํŠธ๊ฐ€ ์™„์ „ํžˆ ์†Œ๋ฉธ๋˜๊ณ , ์•กํ‹ฐ๋น„ํ‹ฐ์™€์˜ ์—ฐ๊ฒฐ๋„ ๋Š์–ด์งˆ ๋•Œ ์‹คํ–‰๋œ๋‹ค.

 

onCreateView ์™€ onViewCreated

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_search_theme, container, false)
    }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
}
  • onViewCreated๋Š” onCreateView์—์„œ return ํ•ด์ค€ view๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ⇒ ์ฆ‰, ๋ทฐ๊ฐ€ ์™„์ „ํžˆ ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ
  • ์ฐจ์ด์ ?
    • onCreateView ๋Š” ๋ทฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‹คํ–‰ํ•  ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ€๊ณ ,
    • onViewCreated ๋Š” ๋ทฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉด ์‹คํ–‰ํ•  ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐ„๋‹ค.