- App States(์ฑ์ ์ํ)๋ [์ ์์ด๋ ธ์ iOS]
- Preparing Your UI to Run in the Background [Apple]
-
foreground ์ํ์ ์ฑ์ ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์๋ ํ๋ฉด์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ CPU๋ฅผ ๋น๋กฏํ ์์คํ ์์์ ์ฐ์ ์์๊ฐ ๋์ ์ํ
-
background ์ํ๋ ์ฑ์ด ํํ๋ฉด์ ๋ค์ด๊ฐ์ ์ฌ์ฉ์ํํ ๋ณด์ด์ง ์๋ ์ํ์ด๋ค.
๐ก ์ฑ์ด background ์ํ๊ฐ ๋์ด๋ ๊ณ์ ์คํํด์ผ ๋ ๋๊ฐ ์กด์ฌํ๋ค.
โถ๏ธ ์์ ์ฑ์ ์ด์ฉํ์ฌ ๋ ธ๋๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ์ฒ๋ผ ๋ค๋ฅธ ์ดํ์ ์ฌ์ฉํ๋๋ผ๋ ๋ฉ์ถ๋ฉด ์๋๋ ์ฑ๋ค -
App State(์ฑ ์ํ)
-
Not running
: ์ฑ์ด ์์ ์คํ๋์ง ์์๊ฑฐ๋ ์์คํ ์ ์ํด ์ข ๋ฃ๋์์ ๋์ ์ํฉ -
Inactive
: ์ฑ์ด foreground ์ํ์ด๊ธฐ๋ ํ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ง ๋ชปํ ์ํ -
Active
: ์ฑ์ด foreground์์ ์คํ ์ค์ด๋ฉฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ ๋์ ์ํฉ -
Background
: ์ฑ์ด background์ ์์ผ๋ฉฐ ์ฝ๋๋ฅผ ์คํํ๊ณ ์๋ ์ํ -
Suspended
: ์ฑ์ด background์ด๋ฉฐ ์ฑ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋จ์ ์๊ธด ํ๋ ์ฝ๋๋ฅผ ์คํํ๊ณ ์์ง ์์ ์ํ
-
-
App Launch Cycle
-
์์์ ์ธ๊ธํ ๊ฐ App State ์ ์ํ ๋ณํ๋ Delegate ๋ฉ์๋๋ค์ ํธ์ถ์ด ๋๋ฐ๋๋ค.
-
๊ฐ ๋ฉ์๋๋ค์ ์ฑ์ ์ํ ๋ณํ์ ๋ํด ์ ์ ํ ๋ฐฉ์์ผ๋ก ๋์ํ ์ ์๋ ๊ธฐํ๋ฅผ ๊ฐ์ง๊ฒ ํด์ค๋ค
Method Description application(_:didFinishLaunching:) ์ฑ์ด ์ฒ์ ์์๋ ๋ ์คํ applicationWillResignActive: ์ฑ์ด Active
์์Inactive
๋ก ์ด๋๋ ๋ ์คํapplicationDidEnterBackground: ์ฑ์ด background
์ํ์ผ ๋ ์คํapplicationWillEnterForeground: ์ฑ์ด background
์์foreground
๋ก ์ด๋ ๋ ๋ ์คํ (์์ง foreground์์ ์คํ์ค์ด์ง ์์)applicationDidBecomeActive: ์ฑ์ด Active
์ํ๊ฐ ๋์ด ์คํ ์ค์ผ ๋applicationWillTerminate: ์ฑ์ด ์ข ๋ฃ๋ ๋ ์คํ
-
- foreground์ ์์ ๋์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ธฐํ ์์คํ ๋ฆฌ์์ค์ ๋ํด์ background๋ณด๋ค ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ ์์คํ ์ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์์ ๋ฐ๋ผ background ์ฑ์ ์ข ๋ฃํฉ๋๋ค.
- background์ ์์ ๋์๋ ๊ฐ๋ฅํ ์ ์ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ์ฌ์ฉํด์ผํ๋ฉฐ(์์คํ ๋ฆฌ์์ค ํด์ , ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์์ฑ) ์ฐ์ ์์์ ์ํด foreground task๋ณด๋ค ๋ ๋ฎ์ ์์์ ํ ๋น๋ฐ์ต๋๋ค.