AsyncTask
μλλ‘μ΄λ Main thread(UI thread)
μλλ‘μ΄λ μ΄ν리μΌμ΄μ μ΄ μ€νλλ©΄ μλλ‘μ΄λ μμ€ν μ νλμ μ€ν μ€λ λλ‘ μ΄ν리μΌμ΄μ μ νλ‘μΈμ€λ₯Ό μ€νν©λλ€.
μ΄ν리μΌμ΄μ
μ ꡬμ±μμκ° μμ±λ λ λ³λμ μ€λ λκ° μμ±λλ κ²μ μλλ©°
μμ λ§ν νλμ μ€ν μ€λ λμμ μ€ν
λ©λλ€. μ΄ μ€λ λλ₯Ό Main threadλΌκ³ ν©λλ€.
μλλ‘μ΄λ μμ€ν
μ μν΄ μμ±λ μ΄ Main threadλ νλ©΄ ꡬμ±μ κ΄ν μν μ λ΄λΉ
ν©λλ€.
μλ₯Ό λ€μ΄ Button, CheckBox, TextView λ±μ UIλꡬ ν€νΈ ꡬμ±μμλ₯Ό μμ± λ° μ‘°μνμμ λ μνΈμμ©νλ μ€λ λκ° Main threadμ λλ€.
κ·Έλμ λ°μμ± μ’μ μ΄ν리μΌμ΄μ μ λ§λλ €λ©΄ μκ°μ΄ μ€λ 걸리λ μμ μ main threadμ ꡬννμ§ μκ³ λ³λμ threadμμ λμνλλ‘ κ΅¬ννλ©΄ λ©λλ€.
λ§μ½ κ°λ°μκ° λ°μ΄ν°λ₯Ό λ€μ΄λ‘λνλ μμ μ Main Thread(UI thread)μ ꡬννμλ€λ©΄ λ€μ΄λ‘λκ° μλ£λ λκΉμ§ νλ©΄μ λ©μΆμ΄ μλκ² μ²λΌ 보μΌκ²μ λλ€.
μ΄λ¬ν μ λ€μ΄ μ΄ν리μΌμ΄μ μ λ°μμ±μ λ¨μ΄μ§κ² λ§λ€κ³ μ¬μ©μλ λ΅λ΅ν¨μ λλΌκ² λ©λλ€.
UI threadκ° μλ μ€λ λμμλ UI ꡬμ±μμλ₯Ό μ‘°μνλ κ²μ νμ©λμ§ μμ΅λλ€.
UI μ μ₯μμ λ΄€μλ UI λμμ λ¨μΌ μ€λ λλ‘ λμνλ ꡬ쑰. λ°λΌμ UI threadμμ μκ°μ΄ μ€λ 걸리λ μμ μ μννλ κ²μ κ·Έ μμ μ΄ μνλλ λμ UIμ λ°μ΄νΈκ° μ§μ° λκ³ μλ€λ κ²μ μλ―Έ.
AsyncTask κ°λ
μ±μ΄ μ€νλλ©° μλλ‘μ΄λ μμ€ν μ λ©μΈ μ€λ λλ₯Ό μμ±ν©λλ€. μ΄ μ€λ λλ μλλ‘μ΄λ UI ν΄ν·μ μ κ·Όν©λλ€. μ¬μ©μμ μ λ ₯μ κΈ°λ€λ¦¬κ±°λ λλ°μ΄μ€ νλ©΄μ 그리λ μμ λ±μ λ€λ£Ήλλ€. κ·Έλμ UI μ€λ λ λΌκ³ λΆλ¦ λλ€.
μ±μ λͺ¨λ μ»΄ν¬λνΈ(Activity, Service, Content Provider. Broadcastreceiver λ±)λ€μ κ°μ μ€λ λ λ΄μμ μ€νλ©λλ€. νμμ λ°λΌ μΆκ° μ€λ λλ₯Ό μμ±ν μ μμ΅λλ€. UI μ€λ λκ° thread-safeνμ§ μκΈ° λλ¬Έμ μ€λ λ μ¬μ©μ λ€μ 2κ°μ§λ₯Ό μ§μΌμΌ ν©λλ€.
UI μ€λ λκ° λΈλ‘λμ§ μλλ‘ ν΄μΌν©λλ€.
UI μ€λ λ μΈμ λ€λ₯Έ μ€λ λμμ UI μ»΄ν¬λνΈ μ κ·Όμ νλ©΄ μλ©λλ€.
μμμ UI μ€λ λλ λΈλ‘λλ©΄ μλλ€ νλλ° μλλ‘μ΄λλ single thread modelλͺ¨λΈμ λ°λ₯΄κΈ° λλ¬Έμ λ¬Έμ κ° μκΉλλ€. μ€λ μκ°μ΄ 걸리λ μμ μ UI μ€λ λμμ μννλ€λ©΄ μμ μ΄ μλ£ λ λ κΉμ§ UIμ€λ λκ° λκΈ°ν΄μΌ νλ―λ‘ UIλ λ¨Ήν΅μ΄ λ©λλ€.
UI λ°μμ± ν₯μκ³Ό μ²λ¦¬μκ°μ΄ μ€λ 걸리λ μμ μ²λ¦¬λ₯Ό κ°μ΄ ν΄κ²°νκΈ° μν΄μ λ³λμ μ€λ λκ° νμν©λλ€. μλ₯Όλ€μ΄ λ€νΈμν¬ κ΄λ ¨ μ²λ¦¬λ λ©μΈ μ€λ λμμ μννλκ² κΈμ§λμ΄ μμ΅λλ€.
μ΄λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μλλ‘μ΄λμμλ Handler, Runnable, AsyncTaskλ±μ μ 곡ν©λλ€. AsyncTaskλ λ©μΈ μ€λ λμμ μμ±ν μ€νλλ©°, λ©μΈ μ€λ λμμ μ²λ¦¬μκ°μ΄ μ€λ 걸리λ μμ μ λ°±κ·ΈλΌμ΄λ μ€λ λλ‘ λκΈ°κ³ κ³μ λ©μΈ μ€λ λ μμ μ μ§ν νκΈ°μν΄ μ¬μ©λ©λλ€. AsyncTaskλ₯Ό μ€νμμΌλκ³ λ©μΈμ€λ λλ λ€μ μμ μ λ°λ‘ ν μ μμ΅λλ€.
Reference
Last updated
Was this helpful?