๐Android์ ๋ชจ๋ ๊ฒ : 1๏ธโฃActivity์ Fragment ์๋ช ์ฃผ๊ธฐ, 2๏ธโฃ Activity์ Framgnet ์ฐจ์ด
https://goni95.tistory.com/173
๐Android์ ๋ชจ๋ ๊ฒ ๊ฐ๋
Android ๋ชฉ ์ฐจ Android Android SDK Platform Architecture App Manifest Android Context App Components Activity์ Fragment ์๋ช ์ฃผ๊ธฐ Activity์ Fragment ์ฐจ์ด LayoutInflater ANR View ๋ฐ ViewGroup ํ๋ฉด..
goni95.tistory.com
Fragment ํ์ ๋ฐฐ๊ฒฝ
์๋๋ก์ด๋ ์ด๊ธฐ ์์ ํ๋ฉด์ ๋๋ฐ์ด์ค๋ง ์๋ ์์ ์ Activity๋ง์ผ๋ก UI๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ์ด๋ ค์์ด ์์์ง๋ง, ํ์ฌ ๋ค์ํ ํ๋ฉด์ ๋๋ฐ์ด์ค๊ฐ ์ถ์๋๋ฉด์ Activity๋ฅผ ์ค์ฒฉํ๋ฉฐ ๋ค์ํ ์๋๋ฅผ ํ์ง๋ง, ์๋ช ์ฃผ๊ธฐ ์ธ์ ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ ๋ค๋ก Activity๋ง์ผ๋ก ํ๋ฉด์ ๊ตฌ์ฑํ๊ธฐ๊ฐ ํ๋ค์๊ณ , ๋์ ํ๋ฉด์ ํจ์จ์ ์ผ๋ก ์ด์ฉํ๊ธฐ ์ํด์ Fragment๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค.
1๏ธโฃ Activity์ Fragment ์๋ช ์ฃผ๊ธฐ
1. Activity ์๋ช ์ฃผ๊ธฐ
์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ํธ์์ฉ ํ๋ฉด์ Activity์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด Android ์์คํ
์ด ์ํ๊ฐ ๋ณ๊ฒฝ๋์์์ ์๊ธฐ์ํด ์ฝ๋ฐฑ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. Activit ์๋ช
์ฃผ๊ธฐ ๋ฉ์๋์๋ onCreate(), onStart(), onRestart(), onResume(), onPause(), onStop() ๋ฐ onDestroy()๊ฐ ์์ต๋๋ค.
์กํฐ๋นํฐ๊ฐ ์ฒ์ ์์ฑ๋ ์ onCreate()๊ฐ ํธ์ถ์ด ๋ฉ๋๋ค. (์ด๊ธฐํ ์์
)
์กํฐ๋นํฐ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๊ธฐ ์ง์ ์ onStart()๊ฐ ํธ์ถ์ด ๋ฉ๋๋ค.
์กํฐ๋นํฐ๊ฐ ์ค๋จ๋์๋ค๊ฐ, ๋ค์ ์์๋๊ธฐ ์ง์ ์ onRestart()๊ฐ ํธ์ถ๋ฉ๋๋ค.
์กํฐ๋นํฐ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ onResume()์ด ํธ์ถ๋ฉ๋๋ค. (์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ํธ์์ฉ ๊ฐ๋ฅ)
์กํฐ๋นํฐ๊ฐ ๊ฐ๋ ค์ง๊ฑฐ๋, ํฌ์ปค์ค๋ฅผ ์์ ๊ฒฝ์ฐ onPause()๊ฐ ํธ์ถ๋ฉ๋๋ค.
์กํฐ๋นํฐ๊ฐ ๋์ด์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง์ง ์์ผ๋ฉด onStop()์ด ํธ์ถ๋ฉ๋๋ค.
์กํฐ๋นํฐ๊ฐ ์๋ฉธ๋๊ธฐ ์ง์ ์ onDestroy()๊ฐ ํธ์ถ๋ฉ๋๋ค.
2. Fragment ์๋ช ์ฃผ๊ธฐ
Fragment ์๋ช
์ฃผ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด, Android ์์คํ
์์ ์ํ๊ฐ ๋ณ๊ฒฝ๋จ์ ์๊ธฐ์ํด ์ฝ๋ฐฑ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. Fragment ์๋ช
์ฃผ๊ธฐ ์ฝ๋ฐฑ ๋ฉ์๋์๋ onAttach(), onCreate(), onCreateView(), onCreateView(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), onDestroy(), onDetach()๊ฐ ์์ต๋๋ค.
- Activity Created -
onAttach() : ํ๋๊ทธ๋จผํธ๊ฐ ์ข
์๋ Activity์ Context๋ฅผ ์ธ์๋ก ๋ฐ์ ์กํฐ๋นํฐ์ ๋ถ์ ๋ ์ต์ด ํ๋ฒ ํธ์ถ๋๋ฉฐ, ์๋ฒฝํ๊ฒ ์์ฑ๋ ์ํ๋ ์๋๋๋ค.
onCreate() : ํ๋๊ทธ๋จผํธ๊ฐ Activity์ ์ํด ์์ฑ๋๋ ์์ ์ ํธ์ถ๋๋ฉฐ, ์กํฐ๋นํฐ์ Bundle์ ์ธ์๋ก ๋ฐ๊ณ , ์กํฐ๋นํฐ์ ๋ค๋ฅด๊ฒ UI ๊ด๋ จ ์์
์ ํ ์ ์์ต๋๋ค.
onCreateView() : Layout์ inflateํ์ฌ ํ๋๊ทธ๋จผํธ์ View๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋์ง๋ง, View๊ฐ ์ด๊ธฐํ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ด UI ์ปดํฌ๋ํธ๋ฅผ ์ด๊ธฐํํ๋ ์์
์ ์กํฐ๋นํฐ์ onCreate()๊ฐ ๋๋๊ณ View๊ฐ ์์ ํ ์์ฑ๋์์ ๋ ํธ์ถ๋๋ onViewCreated() ๋ฉ์๋์์ View์ ๋ํ ์ด๊ธฐํ๋ฅผ ํ๋๊ฒ ์ข์ต๋๋ค.
onViewStateRestored() : ์ ์ฅํด๋ ๋ชจ๋ ์ํ ๊ฐ์ด ๋ณต์๋์ ๋ ํธ์ถ๋ฉ๋๋ค. ๋ ๋ผ์ ๊ฐ UI ์ปดํฌ๋ํธ์ ์ํ๊ฐ์ ์ฒดํฌํ ์ ์์ต๋๋ค.
onStart() : ํ๋๊ทธ๋จผํธ๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๊ธฐ ์ ์ ํธ์ถ๋๋ ํจ์์
๋๋ค.
onResume() : ํ๋๊ทธ๋จผํธ๊ฐ ํ๋ฉด์ ๋ณด์ฌ์ง ๋ ํธ์ถ๋๋ฉฐ, ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
onPause() : ํ๋ฉด์ ์ผ๋ถ๊ฐ ๊ฐ๋ ค์ก๊ฑฐ๋, ํฌ์ปค์ค๋ฅผ ์์ ๊ฒฝ์ฐ์ ํธ์ถ๋ฉ๋๋ค.
onStop() : ํ๋๊ทธ๋จผํธ๊ฐ ๋ ์ด์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง์ง ์์ ๋ ํธ์ถ๋๋ฉฐ, ํ๋๊ทธ๋จผํธ์ ๊ธฐ๋ฅ์ด ์ค์ง๋ฉ๋๋ค.
onDestroyView() : ํ๋๊ทธ๋จผํธ์ View๋ฅผ ์ ๊ฑฐํ ๋ ํธ์ถ๋ฉ๋๋ค. (์กํฐ๋นํฐ์์ ํ๋๊ทธ๋จผํธ ์์ฑ ์ addToBackStack()์ ์์ฒญํ ๊ฒฝ์ฐ onDestroy๋ฅผ ํธ์ถํ์ง ์๊ณ Instance๊ฐ ์ ์ฅ๋์ด ์๋ค๊ฐ Fragment๋ฅผ ๋ค์ ๋ถ๋ฅผ ๋ onCreateView()๋ฅผ ์คํํ์ฌ ๋ค์ ํ๋ฉด์ ํ์ํฉ๋๋ค.)
onDestroy() : View๊ฐ ์ ๊ฑฐ๋ ํ ํ๋๊ทธ๋จผํธ๊ฐ ์์ ํ ์๋ฉธ๋๊ธฐ ์ ์ ํธ์ถ๋ฉ๋๋ค.
onDetach() : ํ๋๊ทธ๋จผํธ๊ฐ ์์ ํ ์๋ฉธ๋๊ณ , ์กํฐ๋นํฐ์์ ์ฐ๊ฒฐ์ด ๋์ด์ง ๋ ํธ์ถ๋ฉ๋๋ค.
- Activity Destroyed -
2๏ธโฃ Activity, Fragment ์ฐจ์ด
Activity๋ ๋์คํ๋ ์ด์ ์ ์ฒดํ๋ฉด์ ์ฐจ์งํ๋ฉฐ View๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉด์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฉํ ์ ์๋ ํฐ ํ๋ก Back Stack์ ์๋์ ์ผ๋ก ๋ฃ์ด์ง์ง๋ง,
Fragment๋ ๋์คํ๋ ์ด์ ์์ ๋ถ๋ถ๋ง ์ฐจ์งํ๋๋ก ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์์ธ์ ์ ์ฐ์ฑ์ ๊ฐ์ง๋ฉฐ Activity์ View์ ํน์ฑ์ ๋ชจ๋ ๊ฐ์ง๊ณ ์์ด Activity์ ์ข ์์ ์ธ ์ํ ํ๋ก Activity์ Fragment๋ฅผ ์ด์ด์ฃผ๋ ์ญํ ์ ํ๋ FragmentManager๋ฅผ ์ด์ฉํด Transaction์ ํตํด Fragment๋ฅผ ์ถ๊ฐ, ์ญ์ , ๊ต์ฒดํ๋ ์์ ์ ์์ฒญํด์ผ ํฉ๋๋ค.