[Android] Activity
Activity
- ๊ฐ๊ฐ์ activity๋ loosely bound(์์กด์ฑ์ด ๋ฎ๋ค?)
- activity๊ฐ ๋ค๋ฅธ app์ ์๋ activity๋ฅผ ์์์ํค๊ธฐ๋ ํ๋ค.
- ์ฌ์ฉํ๋ ค๋ activity๋ ๋ฉ๋ํ์คํธ์ ๋ฑ๋กํด์ผํ๋ค.
Life Cycle
Activity class๋ ์กํฐ๋นํฐ์ ์ํ๊ฐ ๋ฐ๋์๋ค๋ ๊ฒ์ ์๊ฒ ํด์ฃผ๋ callback ํจ์๋ฅผ ์ ๊ณตํ๋ค. (creating, stopping, resuming โฆ)
callback ํจ์๋ฅผ ํตํด ์กํฐ๋นํฐ๊ฐ ์ด๋ป๊ฒ ๋์ํ ์ง ์ ํ ์ ์๋ค.
life cycle callback์ ์ ๊ตฌํ ํด๋์ผ๋ฉด,
- ๋ค๋ฅธ ์ฑ์ผ๋ก ์ ํํ ๋์ ์ถฉ๋ ๋ฐฉ์ง
- ์ฌ์ฉํ์ง ์์ ๋์ ์์คํ ์์ ๋ญ๋น ๋ฐฉ์ง
- ์ฑ์ ๋ค์ ์คํํ์ ๋ ์ด์ ์ํ ์ ์ง ๊ฐ๋ฅ
- ํ๋ฉด ํ์ ์ crashing ๋ฐฉ์ง, ์ํ ์ ์ง ๊ฐ๋ฅ
[์ถ์ฒ: https://developer.android.com/guide/components/activities/activity-lifecycle.html]
Life Cycle callbacks
์ฝ๋ฐฑ ๋ฉ์๋ | ์ค๋ช |
---|---|
onCreate(savedInstanceState) | - created state - ์กํฐ๋นํฐ๊ฐ ๋ง๋ค์ด์ง ๋ ์๋์ผ๋ก ํธ์ถ - savedInstanceState: ์กํฐ๋นํฐ์ ์ด์ ์ ์ฅ๋ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. (์ด์ ์ ์คํํ ์ ์ด ์๋ค๋ฉด null) |
onStart() | - started state - ์กํฐ๋นํฐ๊ฐ ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ง์ ์ ํธ์ถ - ์คํ์ด ๋๋๋ฉด Resumed state๋ก ์ ํ |
onResume() | - resumed state - ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ธฐ ์ง์ ์ ํธ์ถ - resumed state๋ interruptive ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ธฐ ์ ๊น์ง ์ ์ง๋๋ค. - paused state์์ resumed state๋ก ๋์์ค๋ฉด, onResume()์ด ๋ค์ ํธ์ถ๋๊ธฐ ๋๋ฌธ์ paused state ๋์ release์์ผฐ๋ ์ปดํฌ๋ํธ๋ค์ ์ด๊ธฐํํด์ผ ํ๋ค. - onResume()์ ์ฒ์ ์์ฑ๋ ๋๋ฅผ ํฌํจํด์ ์กํฐ๋นํฐ๊ฐ foreground๋ก ์ฌ ๋๋ง๋ค ํธ์ถ๋๋ค. |
onRestart() | - ์กํฐ๋นํฐ ์ค์ง ์ดํ ํธ์ถ๋๋ ๋ฉ์๋๋ก ๋ค์ ์์๋๊ธฐ ์ง์ ์ ํธ์ถ - ๋ค์์๋ ํญ์ onStart() |
onPause() | - ์ฌ์ฉ์๊ฐ ์กํฐ๋นํฐ๋ฅผ ๋ ๋ฌ์ ๋(ํญ์ ์กํฐ๋นํฐ๊ฐ ์์ ์๋ฉธ๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฑด ์๋) ํธ์ถ - ์์คํ ์์์ releaseํ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค. (๋ฐฐํฐ๋ฆฌ์ ์ํฅ์ ์ฃผ๋ BR, GPS โฆ) - onPause()๋ฅผ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ ์ฅ, db transacation ์คํ ๋ฑ์ผ๋ก ์ฌ์ฉํ๋ฉด ์๋๋ค. -> ์ด๋ฐ ์์ ์ method๊ฐ ๋๋๊ธฐ ์ด์ ์ ์๋ฃ๋์ง ์๋๋ค. - onPause()๊ฐ ๋๋ฌ๋ค๊ณ ํด์ ๋ฐ๋ก ์ํ๊ฐ ์ ํ๋๋ ๊ฒ์ ์๋๊ณ , ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ resume๋๊ฑฐ๋ ์กํฐ๋นํฐ๊ฐ ์ฌ์ฉ์์๊ฒ ์์ ํ ์ ๋ณด์ผ ๋๊น์ง ์ ์ง๋๋ค. -> ์์ ํ ์ ๋ณด์ด๋ฉด onStop() |
onStop() | - stopped state - user๊ฐ ์ฌ์ฉํ์ง ์๋ ๋์ ํ์์๋ ๊ฑฐ์ ๋ชจ๋ ์์คํ ์์์ releaseํ๋ค. - stopped state์์ ๋ค์ user๊ฐ ์ฌ์ฉํ๋ฉด onRestart() / ์์ ์คํ์ ๋๋ด๋ฉด onDestroy() - ์์คํ ์ด ๊ฐ์ ์ข ๋ฃํ ์ ์๋ ์ํ |
onDestroy() | - final call - ์กํฐ๋นํฐ๊ฐ destoryed ๋๊ธฐ ์ ์ ํธ์ถ - ์กํฐ๋นํฐ๊ฐ finish()๋ฅผ ํตํด ์ข ๋ฃ๋๊ฑฐ๋ ์์คํ ์ ์ํด ๊ฐ์ ์ข ๋ฃ๋๋ ๊ฒฝ์ฐ์ ํธ์ถ(isFinishing() ๋ฉ์๋๋ก ๊ตฌ๋ถ) - ์์คํ ์ด ๊ฐ์ ์ข ๋ฃํ ์ ์๋ ์ํ |
์กํฐ๋นํฐ ์คํ๋ ๋ callback ์์
onCreate โ onStart โ onResume โ onPause โ onStop โ onDestroy
<์ฃผ์>
ํ๋ฉด ํ์ ์ ํ๋ฉด ์๋๋ก์ด๋ ์ฑ์ ๊ธฐ์กด ์กํฐ๋นํฐ Destroy ~ ์๋ก์ด ์กํฐ๋นํฐ onCreate๋ก ๋ค์ ์์๋๋ค.
ํ๋ฉด ํ์ ์ ์กํฐ๋นํฐ ์ฌ์์์ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ๋ ์๋ค. -> activity ์ ๋ณด์ android:configChanges=โorientation|screenSizeโ ์ถ๊ฐ
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
=> ์ํ์ ์ง์ ์ ์ํ ๊ฒ.
์คํ ์ค์ธ ์กํฐ๋นํฐ ๊ด๋ฆฌ -> ์คํ
- ์คํ(active, running): ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ฉํ๋ ์ํ
- ์ ์ง(stopped): ๋ค๋ฅธ ์กํฐ๋นํฐ์ ์ํด ์์ ํ ๊ฐ๋ ค์ง ์ํ / ์ ๋ณด ์ ์ง - ์ธ์ ๋ ๋ค์ ํ์ฑํ๋ ์ ์๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด ๊ฐ์ ์ข ๋ฃ
- ์ผ์์ ์ง(pause): ํฌ์ปค์ค๋ ์์์ง๋ง ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ์ํ, ์์ชฝ์ ๋ค๋ฅธ ์กํฐ๋นํฐ๊ฐ ์์ง๋ง ํ๋ฉด์ ์์ ํ ๊ฐ๋ฆฌ์ง ์์๊ฑฐ๋ ๋ฐํฌ๋ช ํ ๊ฒฝ์ฐ / ๊ฐ์ ์ข ๋ฃ ๊ฐ๋ฅ
[์ถ์ฒ: https://developer.android.com/guide/components/activities/tasks-and-back-stack.html]
[์ฐธ๊ณ ]
์๋๋ก์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ ๋ณต 1,2๊ถ
Do it! ์๋๋ก์ด๋ ์ฑ ํ๋ก๊ทธ๋๋ฐ
Android Developers
Comments