<aside> ๐Ÿ’ก AsyncTask

</aside>

AsyncTask๋Š” ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋  ํ•„์š”๊ฐ€ ์žˆ๋Š” ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค.

์žฅ์ ์œผ๋กœ๋Š” ๋น„๋™๊ธฐ์  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์‰ฝ๊ณ , ํ•ธ๋“ค๋Ÿฌ๋ณด๋‹ค ์ฝ”๋“œ์ ์œผ๋กœ ๊น”๋”ํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๋‹จ์ ์€ ์žฌ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€ํ•˜๊ณ , ์ข…๋ฃŒ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ข…๋ฃŒ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

AsynsTask๋Š” ์™œ deprecated ๋˜์—ˆ๋Š”๊ฐ€?

  1. ๋ฉ”๋ชจ๋ฆฌ๋ˆ„์ˆ˜

    -์•กํ‹ฐ๋น„ํ‹ฐ ์ข…๋ฃŒ์‹œ์ ๊ณผ ์–ด์‹ฑํฌ๊ฐ€ ๋๋‚˜๋Š” ์‹œ์ ์ด ๋‹ค๋ฅด๋‹ค. ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์–ด์‹ฑํฌ๊ฐ€ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์ผ์‹œ์ ์ธ ํ˜„์ƒ์ด๋ฏ€๋กœ ํฐ ๋ฌธ์ œ๋Š” ์•„๋‹˜. ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ํ™”๋ฉด ํšŒ์ „ ๋“ฑ์œผ๋กœ ์ธํ•ด ๊ณ„์†ํ•ด์„œ ์–ด์‹ฑํฌ๊ฐ€ ์Œ“์—ฌ์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ. ์ด ๊ฒฝ์šฐ๋Š” ํ™”๋ฉด์ด ํšŒ์ „ํ•  ๋•Œ ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ์ข…๋ฃŒ๋˜๊ณ  ์ƒˆ๋กœ ์‹œ์ž‘๋œ๋‹ค. ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์•กํ‹ฐ๋น„ํ‹ฐ๋Š” ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์ธ๋ฐ, ์–ด์‹ฑํฌ๊ฐ€ ์•„์ง ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด ์•กํ‹ฐ๋น„ํ‹ฐ๋„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค(oom ์›์ธ ๊ฐ€๋Šฅ์„ฑ)

  2. ์ˆœ์ฐจ ์‹คํ–‰์œผ๋กœ ์ธํ•œ ์†๋„์ €ํ•˜

  3. ํ”„๋ž˜๊ทธ๋จผํŠธ์—์„œ ์–ด์‹ฑํฌ ์‹คํ–‰๋ฌธ์ œ

    -ํ”„๋ž˜๊ทธ๋จผํŠธ์—์„œ ์–ด์‹ฑํฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ฐฑํ‚ค๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ํ”„๋ž˜๊ทธ๋จผํŠธ๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ๋ถ„๋ฆฌ๋˜๋ฉด์„œ getContext, getActivity๊ฐ€ null์„ ๋ฆฌํ„ด. ๋”ฐ๋ผ์„œ onPostExecte์—์„œ ๋„ํฌ์ธํŠธ ๋ฐœ์ƒ

  4. ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฉ”์„œ๋“œ ์—†์Œ

    -์ทจ์†Œ(cancel)๋งŒ ์žˆ๊ณ  onError๊ฐ€ ์—†์Œ

  5. ๋ณ‘๋ ฌ ์‹คํ–‰ ์‹œ doinBackground ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์Œ

    -์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ€๋ฉด์„œ ๊ธฐ๋ณธ ๋™์ž‘์ด ๋ณ‘๋ ฌ ์‹คํ–‰์—์„œ ์ˆœ์ฐจ ์‹คํ–‰์œผ๋กœ ๋ฐ”๋€œ


์ฐธ: NextStep