Fragment๋?
ํ๋ ๊ทธ๋จผํธ๋ FragmentActivity ๋ด์ ์ด๋ค ๋์ ๋๋ ์ฌ์ฉ์ UI์ ์ผ๋ถ๋ฅผ ๋ํ๋ ๋๋ค. ํ๋์ ์กํฐ๋นํฐ์ ์ฌ๋ฌ๊ฐ์ ํ๋๊ทธ๋จผํธ๊ฐ ์กด์ฌํ ์ ์์ผ๋ฉฐ, ํ๋์ ํ๋๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฌ๊ฐ์ ์กํฐ๋นํฐ์์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ ๊ทธ๋จผํธ๋ ์์ฒด์ ์ผ๋ก ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์์ฒด์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์์ ํ๊ณ , ์กํฐ๋นํฐ ์คํ ์ค์ ์ถ๊ฐ ๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
ํ๋ ๊ทธ๋จผํธ๋ ํญ์ ์กํฐ๋นํฐ ๋ด๋ถ์ ์กด์ฌํด์ผํ๋ฉฐ, ์กํฐ๋นํฐ์ ์๋ช ์ฃผ๊ธฐ์ ์ง์ ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์กํฐ๋นํฐ๊ฐ ์ผ์์ ์ง ์ํ์ ๋น ์ง๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ๋ ๊ทธ๋จผํธ๋ ์ผ์์ค์ง ์ํ์ ๋น ์ง๋ฉฐ ์กํฐ๋นํฐ๊ฐ ์๋ฉธ๋๋ ๊ฒฝ์ฐ ์ํ ํ๋ ๊ทธ๋จผํธ๋ค๋ ์๋ฉธ๋ฉ๋๋ค. ๋์ ํ๋ ๊ทธ๋จผํธ๋ ์กํฐ๋นํฐ๊ฐ ๊ด๋ฆฌํ๋ ๋ฐฑ ์คํ์ ์ถ๊ฐ๋์ด ๋ณด์กด,๊ด๋ฆฌ๋ ์ ์์ต๋๋ค.
ํ๋ ๊ทธ๋จผํธ๋ฅผ ์กํฐ๋นํฐ ๋ ์ด์์์ ์ถ๊ฐํ๋ฉด, ํด๋น ํ๋ ๊ทธ๋จผํธ๋ ์กํฐ๋นํฐ์ ViewGroup์ ๋ค์ด๊ฐ๊ณ ์์ฒด์ ์ธ ๋ทฐ ๋ ์ด์์์ ์ ์ํฉ๋๋ค.
Fragment ๋์์ธ ์ฒ ํ
๊ฐ ํ๋ ๊ทธ๋จผํธ๋ ๋ชจ๋์์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์กํฐ๋นํฐ ๊ตฌ์ฑ ์์๋ก ๋์์ธํด์ผ ํฉ๋๋ค. ๋ค์ ๋งํด, ๊ฐ ํ๋ ๊ทธ๋จผํธ๊ฐ ์์ฒด์ ์ธ ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ์ผ๋ก ๋ ์ด์์๊ณผ ๋์์ ์ ์ํ๊ธฐ ๋๋ฌธ์ ํ ํ๋ ๊ทธ๋จผํธ๋ฅผ ์ฌ๋ฌ ์กํฐ๋นํฐ์ ํฌํจํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ค์ ์ฌ์ฉํ ๊ฒ์ ์ผ๋์ ๋๊ณ ๋์์ธํ๊ณ ํ๋์ ํ๋ ๊ทธ๋จผํธ๋ฅผ ๋ค๋ฅธ ํ๋ ๊ทธ๋จผํธ์์ ์ง์ ์กฐ์ํ๋ ๊ฒ์ ์ผ๊ฐ์ผ ํฉ๋๋ค.
์ด๊ฒ์ด ํนํ ์ค์ํ ์ด์ ๋ ๋ชจ๋์ ํ๋ ๊ทธ๋จผํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ๊ทธ๋จผํธ์ ๋ฐฐ์น๋ฅผ ์ฌ๋ฌ ๊ฐ์ง ํ๋ฉด ํฌ๊ธฐ์ ๋ง์ถฐ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
Fragment์ ์๋ช ์ฃผ๊ธฐ
onAttach()
- ํ๋ ๊ทธ๋จผํธ๊ฐ Activity์ attach๋ ๋ ํธ์ถ๋ฉ๋๋ค.
- ์ด ๋ฉ์๋์์ ๋ถ๋ชจ ์กํฐ๋นํฐ๊ฐ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
onCreate()
- ํ๋ ๊ทธ๋จผํธ๋ฅผ ์์ฑํ ๋ ์์คํ ์์ ์ด๊ฒ์ ํธ์ถํฉ๋๋ค.
- ์ด๊ธฐํํด์ผํ๋ ๋ฆฌ์์ค๋ค์ ์ฌ๊ธฐ์ ์ด๊ธฐํ ํด์ค๋๋ค.
onCreateView()
- ํ๋ ๊ทธ๋จผํธ๊ฐ UI๋ฅผ ๊ทธ๋ฆด ๋ ์ด๊ฒ์ ํธ์ถํฉ๋๋ค.
- Layout์ Inflateํ๋ ๊ณณ์ด๋ฉฐ, view ๊ฐ์ฒด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
onActivityCreated()
- Activity์์ onCreate()๊ฐ ๋ฐํ์ด ๋ ํ, ํธ์ถ๋๋ ๋ฉ์๋์ ๋๋ค.
- ๋ทฐ๊ฐ ๋ชจ๋ ์์ฑ๋ ์ํ๋ก, ๋ทฐ๋ฅผ ๋ณ๊ฒ ํ๋ ์์ ์ด ๊ฐ๋ฅํ ๋จ๊ณ์ ๋๋ค.
onStart()
- ์ฌ์ฉ์์๊ฒ Fragment๋ฅผ ๋ณด์ด๋๋ก ํด์ค๋๋ค.
- Activity๋ ์ด ๋จ๊ฒ์์ started ์ํ์ ๋๋ค.
onResume()
- ์ ์ ์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ๊ฒ ๋๋ ๋ถ๋ถ์ ๋๋ค.
onPause()
- ์ฌ์ฉ์๊ฐ ํ๋ ๊ทธ๋จผํธ๋ฅผ ๋ ๋ ๋ ํธ์ถ๋๋ ์ฒซ ๋ฒ์งธ ์ ํธ์ ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ธฐ์ ์ง์๋์ด์ผ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํฉ๋๋ค.
onStop()
- ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ ํ๋ฉด์ ์์ ํ ๊ฐ๋ฆฌ๊ฒ ๋๋ฉด, onStop()์ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ ๋ค์ ํด๋น ์กํฐ๋นํฐ๋ฅผ ํธ์ถํ๊ฒ ๋๋ฉด ๋ค์ ๋ณต์๋ ์ ์๋ ์ํ์ ๋๋ค.
onDestroyView()
- ํ๋ ๊ทธ๋จผํธ์ ๊ด๋ จ๋ View๊ฐ ์ ๊ฑฐ๋๋ ๋จ๊ณ์ ๋๋ค.
onDestroy()
- ํ๋ ๊ทธ๋จผํธ๋ ์์ฑ๋ ๋, onCreate() -> onCreateView๋ก ํธ์ถํ์์ง๋ง, Destroyํ ๋๋ ๋ฐ๋๋ก onDestoryView์์ View๋ฅผ ์ ๊ฑฐํ๊ณ , onDestroy()๋ฅผ ํธ์ถํฉ๋๋ค.
onDetach()
- ํ๋ ๊ทธ๋จผํธ๊ฐ ์กํฐ๋นํฐ์์ detach๋ ๋ ํธ์ถํฉ๋๋ค.
Reference
https://developer.android.com/guide/components/fragments?hl=ko
ํ๋๊ทธ๋จผํธ | Android ๊ฐ๋ฐ์ | Android Developers
A Fragment represents a behavior or a portion of user interface in an Activity. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. You can think of a fragment as a modular section…
developer.android.com