Android có một mô hình threading nghiêm ngặt xoay quanh main (UI) thread — vốn phải xử lý UI và luôn phản hồi. Hiểu threading, tại sao công việc phải chuyển ra khỏi main thread, và các công cụ (coroutine, và trong lịch sử là thread/handler) là quan trọng cho ứng dụng phản hồi.
Quy tắc main thread
Android có một MAIN (UI) thread duy nhất:
→ xử lý TẤT CẢ thao tác UI (vẽ, sự kiện) — cập nhật UI PHẢI xảy ra trên nó
→ phải luôn PHẢN HỒI — chặn nó làm đơ UI; chặn >5s = ANR (App Not Responding)
HAI quy tắc then chốt:
1. ĐỪNG làm công việc dài/chặn trên main thread (mạng, DB, tính toán nặng) → chuyển ra khỏi nó
2. ĐỪNG cập nhật UI từ một background thread → chuyển lại main thread cho UI
