๐ฒ ์ค๋์ ๊ฐ๋ฐ ์ผ์ง
์ญ์ api๋ฅผ ํธ์ถํ๊ณ ์ ๋๋ก ์ญ์ ๋์ผ๋ฉด ์ด์ ํ๋๊ทธ๋จผํธ๋ก ๊ฐ๊ณ ์ญ์ ๊ฐ ๋์ง ์์์ผ๋ฉด ํ ์คํธ๋ฅผ ๋์ฐ๋ ค๊ณ ํ๋ค.
- ๊ทธ๋ฐ๋ฐ ์๊พธ ์ญ์ api๋ก ์๋ฒ์ ํต์ ํ๊ธฐ๋ ์ ์ ์ญ์ ๊ฐ ์ ๋๋ก ๋๋์ง if๋ฌธ์ ์ฒดํฌ๊ฐ ๋๋ค.
- ์ผ๋จ ์ฝ๋ฃจํด์ ์ฌ์ฉํ๋ฉด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์๋ชปํด์ ๋ฐ์ํ๋ ๊ฒ์ ์์๋ค.
- suspend์ ์ฝ๋ฃจํด์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ๋๋ก ์ดํดํ์ง ๋ชปํ์๋ค.
์ฝ๋ฃจํด ๋ด์ suspend ํจ์๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ suspend ํจ์์์ delay๋ ํต์ ํ๋ ์ฝ๋์ ๊ฐ์ด ๊ธฐ๋ค๋ฆฌ๋ ์ํฉ์ด ์ค๋ฉด ๊ฑฐ๊ธฐ์ ์ ๊น ๋ฉ์ถ๊ณ ์ฝ๋ฃจํด ๋ฐ๊นฅ ์ฝ๋๋ฅผ ์คํํ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
{ CoroutineScope(Dispatchers.IO).launch { test() // 1 Log.d(TAG, "1") // 3 Log.d(TAG, "2") // 3 } Log.d(TAG, "6") // 2 Log.d(TAG, "7") // 2 Log.d(TAG, "8") // 2 Log.d(TAG, "9") // 2 } private suspend fun test() { CoroutineScope(Dispatchers.IO).launch { delay(2000) } }
์์ ๊ฐ์ด suspend ๋ด์ delay๋ฅผ ๋ง๋๋ฉด ์ฝ๋ฃจํด ๋ฐ๊นฅ ์ฝ๋๋ฅผ ์คํํ ํ ๋ค์ ๋์์จ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ปค์คํ
๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๋ง๋๋๋ฐ ํ
๋๋ฆฌ๋ฅผ ๋ฅ๊ธ๊ฒ ํ๋ ค๊ณ background.xml์ ๋ง๋ค์ด ์ ์ฉ์์ผฐ๋๋ฐ ์ ์ฉ์ด ๋์ง ์์๋ค.
- ๋ค์ด์ผ๋ก๊ทธ๋ ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์ด ์กด์ฌํ์ฌ ํฌ๋ช
์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
1 2 3
// Dialog๋ ๋ด๋ถ์ ์ผ๋ก ๋ค์ ํฐ ์ฌ๊ฐํ ๋ฐฐ๊ฒฝ์ด ์กด์ฌํ๋ฏ๋ก, ๋ฐฐ๊ฒฝ์ ํฌ๋ช ํ๊ฒ ๋ง๋ค์ง ์์ผ๋ฉด // corner radius์ ์ ์ฉ์ด ๋ณด์ด์ง ์๋๋ค. window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
- ๋ค์ด์ผ๋ก๊ทธ ํด๋์ค ๋ด๋ถ์ ์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๋๋ค.
- ๋ค์ด์ผ๋ก๊ทธ๋ ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์ด ์กด์ฌํ์ฌ ํฌ๋ช
์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
- ์ฑ 1์ฐจ ๋ฐฐํฌ๊ฐ ์ฑ๊ณตํ๋ค. ์ด์ ๊ตฌ๊ธ ํ๋ ์ด ์คํ ์ด์ ์ฌ๋ผ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์นด์นด์ค Developers์์ ์ฑ์ Biz์ฑ์ผ๋ก ๋ฐ๊พผ ๋ค ๋ก๊ทธ์ธ ์ ์ด๋ฉ์ผ์ ํ์ ํญ๋ชฉ์ผ๋ก ๋ฐ๊ฟ์ฃผ์๋ค.
- ํ์ฌ ๋ค์ด๋ฒ๋ ๊ฒ์ ์์ฒญ์ ์ ์ฒญํ๊ณ 3~4์ผ ์์๋ ์ ์๋ค๊ณ ํ๋ค.