-
[Android] Activity๋? Activity LifeCycle ์๋ฒฝ ์ดํดAndroid 2021. 11. 3. 02:55๋ฐ์ํ
Activity๋?
์๋๋ก์ด๋ ๊ฐ๋ฐ์ ํ ๋ฒ์ด๋ผ๋ ํด๋ดค๋ค๋ฉด Activity๋ ๋ฌด์กฐ๊ฑด ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ ๋ํ Activity๋ฅผ ์์ฃผ ์ฌ์ฉํ์ง๋ง ๊ตฌ์ฒด์ ์ผ๋ก Activity์ ์ญํ ์ด ๋ฌด์์ด๊ณ , LifeCycle์ ์๊ฐํด์ ๊ฐ๋ฐ์ ํ ์ ์ด ์์ ์ ๋๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์์ง ์์ต๋๋ค. ์ค์ ๋ฉด์ ์์๋ ๋จ๊ณจ ์ง๋ฌธ์ผ๋ก ๋น ์ง์์ด ๋์ค๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ๊ณต๋ถํ๊ณ ์ ์ด ๊ธ์ ์ฐ๊ฒ ๋์์ต๋๋ค.
๋ณธ๋ก ์ผ๋ก ๋์๊ฐ์ Activtiy๋ ์๋๋ก์ด๋ 4๋ ์ปดํฌ๋ํธ ์ค ํ๋๋ก ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๋ UI๋ฅผ ์ ๊ณตํ๋ ์ญํ ์ ํฉ๋๋ค. ์๋๋ก์ด๋ ํฐ์์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ฉด ๋ณด์ฌ์ง๋ ํ๋ฉด์ด ๋๋ถ๋ถ Activity๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ข ๋ ์์ธํ ์ค๋ช ํ๊ธฐ ์ ์ Entry Point์ ๋ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
โป Entry Point
- ์ํํธ์จ์ด์์ Entry Point๋ ์ง์ ์ ์ ๋ปํ๋ฉฐ, C/C++, Java ๊ฐ๋ฐ ์ main ํจ์๋ก Entry Point์ ๋๋ค.
- ๋ณดํต Entry Point๋ main๊ณผ ์ ์ฌํ๊ฒ ์ค์ง ํ๋๋ง ์กด์ฌํ์ฌ ๋จ์ผ ์ง์ ์ ์ด๋ผ๊ณ ๋ ๋ถ๋ฆ ๋๋ค.
- ํ์ง๋ง ์๋๋ก์ด๋ ์์คํ ์์๋ ๋จ์ผ ์ง์ ์ ์ด ์๋ 4๋ ์ปดํฌ๋ํธ(Activity, BroadCastReceiver, Service, ContentProvider) ๋ฅผ ํตํด์ ์ง์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ฆ, Activity๋ Entry Point์ค ํ๋๋ก ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ UI ์ ๊ณต๊ณผ ๋์์ ์ง์ ์ ์ญํ ๋ ํ๊ฒ ๋ฉ๋๋ค.
- ์๋๋ก์ด๋ ์์คํ ์์ Entry Point๋ฅผ ํตํด ํด๋น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํฌ๋ํธ๋ก ์ ์ด๊ถ์ ๋๊ธฐ๊ธฐ ์ํด์ Manifest.xml์ ๋ช ์ํด์ผ ํฉ๋๋ค.
๋ค์ ์ ๋ฆฌํ์๋ฉด, Acitivty๋ ์๋๋ก์ด๋ ์์คํ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ ์ค ํ๋๋ก ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ๋ UI๋ฅผ ์ ๊ณตํ๋ ์ญํ ๊ณผ ์์คํ ์์ ํด๋น ์ปดํฌ๋ํธ๋ก ์ ์ด๊ถ์ ๊ฐ์ง ์ ์๋ ์ง์ ์ ์ญํ ์ ํ๋ค๊ณ ํ ์ ์์ต๋๋ค.
Activity ์ค๊ณ
ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ชจ๋ ํ๋ฉด ๋น ํ๋์ Acitivty๋ก ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ฉด apk ํฌ๊ธฐ๋ ์ปค์ง๊ณ ํ๋ฉด ์ด๋ ๊ฐ ์๊ฐ์ ์ธ ์์๋ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ๋๋ฌด ๋ถํ์ํ๊ฒ ๋ง์ด ๋ง๋ค์ง ์์ ๊ฒ์ด ๊ถ์ฅ๋๋ฉฐ, UI ์ก์ ์ด ๋ง์ผ๋ฉด Activitiy ์ฌ์ฉ์ ๊ณ ๋ คํ๊ณ ๊ทธ๊ฒ ์๋๋ผ๋ฉด Fragment๋ popup์ผ๋ก ๋์ฒดํ๋ฉด ์ข์ต๋๋ค.
Activty LifeCycle
Activitiy์ ์ญํ ์ ๋ํด ์์์ผ๋ ํด๋น ์ปดํฌ๋ํธ LifeCycle์ ๋ํด ์์งํ ํ์๊ฐ ์์ต๋๋ค. LifeCycle์ ๋ํด ์ดํด๊ฐ ๋์ง ์์ ์ํ๋ก ๊ฐ๋ฐ์ ํ๊ฒ ๋๋ฉด ๋ฐ๋ฉํด์ผ ๋ ๋ฆฌ์์ค๋ค์ด ๋ฐ๋ฉ๋์ง ์๊ณ , DB ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ฌ ์ ์๋ค๋๊ฐ, ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ๊ฒ ๋ ์๋ ์์ต๋๋ค. 6๊ฐ์ ์ฝ๋ฐฑ(onCreate, onStart, onResume, onPause, onStop, onDestory)์ด ์ ๊ณต๋๋ฉฐ Activity๊ฐ ์ด๋ค ์ํ์ผ ๋ ํด๋น ์ฝ๋ฐฑ์ ํธ์ถ๋๋์ง ์์์ผ ํฉ๋๋ค.
onCreate
์๋๋ก์ด๋ ์์คํ ์ด Activity๋ฅผ ์์ฑํ ๋ ์คํ๋๋ ์ฝ๋ฐฑ๋ฉ์๋๋ก ์ ์ฒด LifeCycle ๋์ ํ ๋ฒ ํธ์ถ๋๊ฒ ๋ฉ๋๋ค. ์ฃผ๋ก ViewBinding, DataBinding๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ๊ตฌ์ฑํ๋ Layout๊ณผ ์ฐ๊ฒฐํ๊ณ ViewModel๊ณผ ์ ์ฐ๊ฒฐ ๋๋ ํด๋์ค ์ธ์คํด์ค๋ฅผ ์์ฑ๊ณผ ๊ฐ์ Activity์ ์์ ๋ก์ง๋ค์ด ํฌํจ๋์ด ์์ต๋๋ค. ViewBinding๊ณผ DataBinding์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด setContentView๋ฅผ ํธ์ถํ์ฌ์ผ ํ๊ณ ์ด ๋ฉ์๋๋ onCreate ์ฝ๋ฐฑ์ ์ข ์์ ์ ๋๋ค.
์ด ๋ฉ์๋์๋ Key์ Value์ ํํ๋ก ์ ์ฅํ๋ Bundle ํ์ ์ savedInstanceState ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. ์ด์ Activity์ ์ํ๋ฅผ ์ ์ฅํ์ฌ ์์ฑ ์์ ์ค์ ํ๊ธฐ ์ํ ๋ณ์๋ก ์ฒ์ Activity๋ฅผ ์คํํ๋ค๋ฉด ํด๋น ๋งค๊ฐ๋ณ์์๋ null ๊ฐ์ ๋๋ค.
onStart
onCreate ์ดํ ์์์ํ๊ฐ ๋์๊ณ , ์์คํ ์ ์ฐ๋ฌ์ onStart, onResume ์ฝ๋ฐฑ์ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. onStart๊ฐ ํธ์ถ์ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋์ด ์คํ๋๋๋ฐ ์ฒ์ ์์ฑ ์ดํ ํธ์ถ๋ ๋์ onRestart ์ฝ๋ฐฑ์ ์์ ํ ์ฌ์์๋ ๋ ํธ์ถ๋ฉ๋๋ค. onStart์์๋ Activity๊ฐ ์ฌ์ฉ์์๊ฒ ํ์๋๊ณ , ํฌ๊ทธ๋ผ์ด๋๋ก ์ด๋ํ ์ค๋น๋ฅผ ํ๊ฒ ๋ฉ๋๋ค. ํด๋น ์ฝ๋ฐฑ์ ๋น ๋ฅด๊ฒ ์๋ฃ๊ฐ ๋๊ณ onResume ์ฝ๋ฐฑ์ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
onResume
onResume์ด ํธ์ถ๋ ์ดํ์๋ง Activity๊ฐ ํฌ๊ทธ๋ผ์ด๋ ์ํ๊ฐ ๋์๊ณ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ํ ์ ์๋ ๊ณณ์ ๋๋ค. ์ค์ ๋ก setContentView ๊ฒฐ๊ณผ๊ฐ ๋ณด์ฌ์ง๋ ๋ถ๋ถ์ ๋๋ค. ์ฌ์์ ์ดํ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์๋ Activity๊ฐ ํฌ๊ทธ๋ผ์ด๋์ ์ํ๊ฐ ๋๊ณ ๋ชจ๋ ํ๋ฉด์ ํด๋น Acitivty๊ฐ ๊ฐ๋ ์ฐฌ ๋ชจ์ต์ด์ด์ผ ํฉ๋๋ค. ์ ํ๊ฐ ์ค๊ฑฐ๋ , ํ๋ฒํผ์ ๋๋ฌ ํด๋น Activity์ ํ๋ฉด์ด ๊บผ์ง๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ธฐ ์ ๊น์ง onResume ์ํ์์ ๋จธ๋ฌด๋ฅด๊ฒ ๋ฉ๋๋ค.
ํ๋ฉด์ด ๊บผ์ง๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด onPause ๊ฐ ํธ์ถ๋๊ณ ๋ค์ ์ฌ๊ฐ๊ฐ ๋๋ฉด onResume ์ฝ๋ฐฑ์ด ํธ์ถํ๊ฒ ๋ฉ๋๋ค. ์๋์์๋ ์ค๋ช ํ๊ฒ ์ง๋ง, onResume์ onPause์์ ํด์ ํ๋ ๋ฆฌ์์ค๋ค์ ๋ค์ ์ด๊ธฐํ ํ๋ ์ฝ๋๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ฆ, onResume๊ณผ onPause๋ ๋์นญ์ ์ผ๋ก ๋ฆฌ์์ค/๋ฐ์ดํฐ ์ด๊ธฐํ์ ํด์ ๋ฅผ ํด์ผ ํฉ๋๋ค.
onPause
Activity๊ฐ ํฌ๊ทธ๋ผ์ด๋์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋ฐ๋๋ ์์ ์ผ๋ก ํ๋ฉด์ ์ผ๋ถ๊ฐ ๊ฐ๋ ค์ง ์ํ์ผ ๋ onPause ์ฝ๋ฐฑ์ด ํธ์ถ๋ฉ๋๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ฌ ์๋ก์ด Acitvity๊ฐ ํฌ๊ทธ๋ผ์ด๋๋ก ๋์ค๊ธฐ์ ๊น์ง๋ onPause ์ํ์ ์๋ค๊ฐ ํฌ๊ทธ๋ผ์ด๋๋ก ๋์ค๋ ์๊ฐ ๋ชจ๋ ํ๋ฉด์ด ๊ฐ๋ ค์ง๋ฉด onStop ์ฝ๋ฐฑ์ ํธ์ถํ๊ฒ ๋ฉ๋๋ค. ๋๋ Dialog Activity๋ ํฌ๋ช Acitivty๊ฐ ์์ ๋ฐ ๊ฒฝ์ฐ์๋ onPause์ํ์ ๋จธ๋ฌผ๊ฒ ๋ฉ๋๋ค. ์ค์ ๋ฉด์ ์์๋ onPause์ onStop์ ์ฐจ์ด๋ฅผ ์์ฃผ ์ง๋ฌธํ๊ธฐ๋ ํฉ๋๋ค. onPause๋ ํฌ๊ทธ๋ผ์ด๋์์ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ ํ๋๋ ์์ ์ผ๋ก ํ๋ฉด์ ์ผ๋ถ๊ฐ ๊ฐ๋ ค์ง ์ํ์ ํธ์ถ๋๊ณ , onStop์ ์์ ํ ํ๋ฉด์ด ๊ฐ๋ ค์ง๋ฉด ํธ์ถ๋ฉ๋๋ค.
onPause๋ ์์ฃผ ์ ๊น ์คํ๋๋ฏ๋ก ํ์ฌ ํ๋ฉด์ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋, ๋คํธ์ํฌ ํธ์ถ ๋๋ DB ํธ๋์ญ์ ๊ณผ ๊ฐ์ ์๊ฐ ์์๊ฐ ์๋ ์์ ๋ค์ ์คํํด์๋ ์๋ฉ๋๋ค. ์ด์ฒ๋ผ ๋ถํ๊ฐ ํฐ ์์ ๋ค์ ์ฃผ๋ก onStop์์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
onStop
์์์ ์ค๋ช ํ๋ฏ์ด Activity๊ฐ ์ด๋ฒคํธ๋ก ์ธํด ์๋ก์ด ํ๋ฉด์ด ๋ํ๋์ ์ ์ฒด ํ๋ฉด์ ๊ฐ๋ฆฌ๊ฒ ๋๋ฉด onStop ์ด ํธ์ถ๋๊ฒ ๋ฉ๋๋ค. onStop ์์๋ Activity์์ ์ด์ ์ฌ์ฉ๋์ง ์์ ๋ฆฌ์์ค๋ค์ ํด์ ํ๊ฑฐ๋ ํ์ฌ ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํ DB ์์ ๋ค์ ์งํํด์ผ ํฉ๋๋ค. onStop์์ ์ค์ํ ์ ์ Activity ๊ฐ์ฒด๋ ์์ง ๋ฉ๋ชจ๋ฆฌ ์์ ๋จธ๋ฌด๋ฅด๊ฒ ๋ฉ๋๋ค. ์ด ๊ฐ์ฒด์์ window manager์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ๋ฟ ๋ชจ๋ ์ํ๋ ๋ฉค๋ฒ ์ ๋ณด๋ ๊ณ์ ๊ด๋ฆฌ ํ๊ณ ์์ต๋๋ค. Activity๊ฐ ๋ค์ ์ฌ๊ฐ๋๋ฉด ์ด ์ ๋ณด๋ค์ ๋ค์ ํธ์ถํ ์ ์์ต๋๋ค. ์ฌ๊ฐ ์ onCreate์์ ์์ฑํ ๊ตฌ์ฑ์์๋ ๋ค์ ์ด๊ธฐํ ํ ํ์ ์๊ณ ๋ ์ด์์์ ์๋ ๊ฐ View ๊ฐ์ฒด๋ ํ์ฌ ์ํ๋ฅผ ๊ธฐ๋กํ๊ธฐ์ ์ ์ฅ ๋ฐ ๋ณต์ํ ํ์ ์์ต๋๋ค.
onDestroy
Activity๊ฐ ์์ ํ ์๋ฉธ๋๊ธฐ ์ ์ onDestory ์ฝ๋ฐฑ์ด ํธ์ถ๋ฉ๋๋ค. ๊ณต์๋ฌธ์์์๋ onDestory๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ 2๊ฐ์ง๋ผ๊ณ ๋์์์ต๋๋ค. finish() ํจ์๋ฅผ ํธ์ถํ์ฌ Activity๊ฐ ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ์ ๊ธฐ๊ธฐ ํ์ ๊ณผ ๊ฐ์ ๊ตฌ์ฑ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ผ์์ ์ผ๋ก ์๋ฉธ๋๋ ๊ฒฝ์ฐ์ ๋๋ค. ํ์ง๋ง, ๊ทธ ์ธ์๋ ์์คํ ์ ์ํ ์กํฐ๋นํฐ๊ฐ ์ ๊ฑฐ๊ฐ ๋ ์๋ ์๊ณ , ์ด ๊ฒฝ์ฐ์์๋ onDestory๊น์ง ํธ์ถ์ด ๋ฉ๋๋ค.
์์ธํ ์ค๋ช ์ ํ๋ฉด, ์ฌ๋ฌ ํ ์คํฌ๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ํ๋์ ํ์คํฌ๋ฅผ ๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ฉ๋์ด ๋ง์์ง ๊ฒฝ์ฐ์๋ OutOfMemoryError๊ฐ ๋ฐ์ํ์ง๋ง, ์ฌ๋ฌ ํ์คํฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด OutOfMemoryError๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ํ ์คํฌ์ ์กํฐ๋นํฐ๋ฅผ ์ข ๋ฃ์ํค๊ฒ ๋ฉ๋๋ค. ์ด์ ๊ฐ์ด ์์คํ ์์ Acitivty๋ฅผ ์ ๊ฑฐํ ๋์๋ onDestory๊น์ง ํธ์ถ์ด ๋ฉ๋๋ค.โป ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ํธ์ถ ์์
ํท๊ฐ๋ฆด๋งํ ์ํฉ์์์ ์๋ช ์ฃผ๊ธฐ ํธ์ถ ์์์ ๋๋ค. ํ ๋ฒ์ฉ ์๊ฐํด๋ณด์ ํ์ ํ์ธํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
- ์์ํ ๋ : onCreate → onStart → onResume
- ํ๋ฉด ํ์ ํ ๋ : onPause → onStop → onDestory → onCreate → onStart → onResume
- ํ ๋ฒํผ ํด๋ฆญ ์ : onPause → onStop
- ํ ์ด๋ ํ ๋ค์ ๋์์ฌ ๋ : onRestart → onStart → onResume
- ๋ฐฑ ๋ฒํผ ํด๋ฆญํ์ฌ ์กํฐ๋นํฐ ์ข ๋ฃ ์ : onPause → onStop → onDestory
โป ์กํฐ๋นํฐ ์ ํ ์ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ํธ์ถ
Activity A์์ Acitivity B๋ฅผ ์์ํ ๋ ๋ฉ์๋๋ค์ด ์ด๋ป๊ฒ ํธ์ถ๋๋์ง๋ ์ ํ์๊ฐ ์์ต๋๋ค. ์ ๋ํ ๋จ์ํ๊ฒ ์๊ฐํด์ Activity A๊ฐ onStop๊น์ง ํธ์ถ๋ ์ดํ์ Activity B๊ฐ onCreate, onStart, onResume ์์๋๋ก ํธ์ถ๋๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํ์ง๋ง ์ด์ ๊ฐ์ด ์คํ๋๋๊ฒ ์๋๋๋ค.
- Activity A๋ onPause ๋ฉ์๋๋ฅผ ์คํํฉ๋๋ค. (Activity A๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ด๋)
- Activity B๋ onCreate, onStart, onResume ๋ฉ์๋๋ฅผ ์คํํ์ฌ ํฌ๊ทธ๋ผ์ด๋ ์ํ๊ฐ ๋ฉ๋๋ค.
- Activity B๊ฐ onResume๊น์ง ํธ์ถ๋ ์ดํ์๋ ํฌ๊ทธ๋ผ์ด๋ ์ํ๊ฐ ๋๊ณ ์ ์ฒด ํ๋ฉด์ ๊ฐ๋ ์ฑ์ฐ๊ธฐ ๋๋ฌธ์ Activity A๊ฐ onStop ๋ฉ์๋๊ฐ ํธ์ถ๋๊ฒ ๋ฉ๋๋ค.
ํฌ๊ฒ ์ค์ํ์ง ์๋ค๊ณ ์๊ฐํ ์ ์์ง๋ง, ๋ง์ฝ ๋ ์กํฐ๋นํฐ์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํด๋์ค๋ DB๋ฅผ ์ฌ์ฉํ ์ ๋ฌธ์ ๋ ์๊ฐ ์์ต๋๋ค. Activity A๊ฐ onPause๊ฐ ์๋ onStop์์ ํด๋์ค, DB๋ฅผ ์ ์ฅํ ์ Activity B์์๋ ์ ์ฅ๋์ง ์์ ์ํ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฒ ๋๊ณ ๊ทธ ์ดํ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ฐ๋ค์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์กํฐ๋นํฐ ์ ํ ์์ ์๋ช ์ฃผ๊ธฐ์ ๋ํด ์ ์๊ณ ์ฌ์ฉํ๋๋ก ํด์ผํฉ๋๋ค.
โป ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ์ฌ์ฉ์ ์ฃผ์์ฌํญ
๋ฆฌ์์ค ์์ฑ/์ ๊ฑฐ๋ ๋์นญ์ผ๋ก ์คํ
onCreate์์ ๋ฆฌ์์ค ์์ฑํ์ผ๋ฉด onDestory์ ํด์ ๋ฅผ ํ๊ณ onResume์ ์์ฑํ๋ฉด onPause์ ์ ๊ฑฐ๋ฅผ ํด์ ๋์นญ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์์์ ๋ง์ด ์์๋ฅผ ๋ค์๋ฏ์ด, DB๋ฅผ onCreate์์ ์ด์๊ณ onPause๊ฐ ๋๋ฉด ๋ซ๋๋ค๊ณ ๊ฐ์ ํ์ ๋ ์ฌ์์์ด ๋๋ฉด ๋ซํ DB๋ฅผ ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ฆ, onCreate์์ DB๋ฅผ ์ด์๋ค๋ฉด onDestory์ ๋ซ๋๋ก ํด์ผ ํฉ๋๋ค.
finish() ๋ฉ์๋ ํธ์ถ ํ return ํ์
finish ํจ์๋ก ์กํฐ๋นํฐ ์ข ๋ฃ ์์ finish ๋ฉ์๋๋ ์์คํ ์ ์กํฐ๋นํฐ๋ฅผ ์ข ๋ฃํ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ฟ ๋ฆฌํด์ ํ๋๊ฒ ์๋๋๋ค. finish ๋ฉ์๋ ์ดํ์๋ ๋ก์ง์ด ์๋ค๋ฉด, ํด๋น ๋ก์ง์ด ์ํ๋ ์ ์์ผ๋ฉฐ ์ ์์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ๊ฑฐ๋, ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ finish ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค๋ฉด return์ ํ์๋ก ์ถ๊ฐํ์ฌ ์ดํ ๋ก์ง์ด ์คํ๋์ง ์๋๋ก ํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
- ์๋๋ก์ด๋ ํ๋ก๊ทธ๋๋ฐ Next Step p77 ~ p92
- Android Java/Kotlin ์๋๋ก์ด๋ ์ฑ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ด๋ p82 ~ p87
- https://developer.android.com/guide/components/activities/activity-lifecycle
๋ฐ์ํ'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] Preference, Shared Preference? (0) 2021.11.19 [Android] Thread, Handler, Looper, Message Queue ๋ค๋ฃจ๊ธฐ (0) 2021.11.11 [Android] Drawble layer-list (0) 2021.08.15 [Android] Robelctric Test๋ (0) 2021.02.17 [Android] Unit Test, JUnit4 (0) 2021.02.16