Context - boostcampwm-2024/and04-Nature-Album GitHub Wiki
Android์์ Context๋?
context์ ์ฌ์ ์ ์๋ฏธ๋ ๋งฅ๋ฝ, ๋ฌธ๋งฅ์ด๋ ๋ป์ด๋ค.
android์์ context๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ฌ ์ํ๋ฅผ ๋ํ๋ด๋ ์ค์ํ ๊ฐ๋ ์ด๋ค. ์ฝ๊ฒ ๋งํด ์ดํ๋ฆฌ์ผ์ด์ ์ด ํ์ฌ ์ด๋ค ํ๊ฒฝ์์ ์คํ๋๊ณ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ ์ ๋ณด์ ์งํฉ์ฒด๋ผ๊ณ ํ ์ ์๋ค.
Context๋ฅผ ํตํด์๋ ์์คํ ์์ ํน์ ์์คํ ์๋น์ค์ ์ ๊ทผํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, getResource(), Database, SharedPreferences, Notification, WindowManger๋ฑ์ ์ ๊ทผํ ์ ์๋ ๊ฒ์ด๋ค.
์ด Context๋ ํฌ๊ฒ 2์ข ๋ฅ๋ก ๋๋ ์ ์๋ค.
Application Context
Application Context๋ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋์ด ์๊ณ , ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ด์์๋ ๋์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
์ฆ, ์ดํ๋ฆฌ์ผ์ด์ lifeCycle๊ณผ ๋ฌถ์ฌ์๋ ๊ฒ!
Application Context๋ ํ์ฌ context์ ๋ถ๋ฆฌ๋ Context๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ ์ ์๋ค.
์ฆ, Activity ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๊ณณ์์ Context๊ฐ ํ์ํ ์์ ์ ์ ํฉํ ๊ฒ์ด๋ค.
ํ ์์๋ก, ์ด๋ค ํด๋์ค๋ฅผ ์ฑ๊ธํค ๊ฐ์ฒด๋ก ๋ง๋ค์๋๋ฐ, ์ด ์ฑ๊ธํค ๊ฐ์ฒด๊ฐ Context๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ด๋ค.
์ด๋ฐ ์ํฉ์ ์ฌ์ฉํ๋ Context๊ฐ Application Context์ธ ๊ฒ์ด๋ค.
์ด๋ฐ ์ํฉ์์ ๋ง์ฝ Activity Context๋ฅผ ๋๊ฒจ์ฃผ๊ฒ ๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ค. Activity์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋จ๊ฒจ Garbage Collection์ด ๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด๋ค.
Activity Context
Activity Context๋ Activity์ ๊ด๋ จ๋์ด ์๊ณ , Activity๊ฐ ์ข ๋ฃ๋๋ฉด ๊ฐ์ด Destory๋๋ Context์ด๋ค.
์ด๋ Activity LifeCycle์ ์ข ์๋์ด ์๋ค๋ ๋ป์ด๋ค.
์ฃผ๋ก Activity Context๋ AlertDialog, Dialog, layout inflate์ ๊ฐ์ด ํ๋์ Activity์์ ๋ค๋ค์ผ ํ๋ ๊ฒฝ์ฐ ์ ํฉํ๋ค.
์ ๋ฆฌ!
์ฑ๊ธํค ๊ฐ์ฒด์ ๊ฐ์ด Activity LifeCycle์ ๋ฒ์ด๋ ์ํฉ์์ context๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ Application Context,
Activity ๋ด์์ UI ๋์ ๋ฑ์์์ Context๋ Activity Context๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
Application Context์ ํ์ฉ ๋ฒ์๊ฐ ๋ ๋๊ธฐ์ ๋ฌด์์ ์ฌ์ฉํ ์ ์์ง๋ง Dialog ๊ฐ์ ๊ฒฝ์ฐ์์ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๋ํ, Activity๋ Garbage Collection์ด ๊ฐ๋ฅํ์ง๋ง, Application Context๋ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ก์ธ์ค๊ฐ ์ด์์๋ ๋์ ๋จ์์๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ์์ ํ ๋น ํด์ ๋ฅผ ํ์ง ์๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ ์ ์๊ธฐ์ ์ฃผ์ํด์ผ ํ๋ค.