Cùng phân biệt sự khác nhau về đa tiến trình trong Android : Thread, Handler, Asyntask, Service, IntentService

Sau khi đọc loạt bài về đa tiến trình trong Android, mình tự dưng hơi mông lung về cả cái đống loạn xì ngầu này 😃) Vậy nên mạo muội viết bài phân biệt sau đây, tất nhiên đây chỉ là quan điểm cá nhân nhé :

Tiêu chí so sánh Thread Handler Asyntask Service IntentService
Mục đích - Sử lý task lâu,chậm + xử lý multtask - Là thành phần giao tiếp giữa UI và backgroud thread - Sinh ra với sứ mệnh thay thế cho Thread và Handler với các task nhỏ Không cần UI - Không nên thực hiện các task lớn mà nên thực hiện các task nhỏ nhưng thời gian thực hiện lâu Xử lý long task mà không cần giao tiếp UI - Nếu cần giao tiếp thì sử dụng thông qua Handler hoặc Broadcast Intent
Được gọi từ Bất kỳ Thread nào Mainthread MainThread Bất kỳ Thread nào MainThread ( Intent được nhận trên mainthread sau đó sẽ được thực hiện trên worder Thread)
Chạy trên thread riêng MainThread WorkerThread ,có thể giao tiếp với UI qua các methods Mainthread thread riêng
Hàm gọi Start() thông qua Message execute() onStartService Intent
Khả năng can thiệp, khó khăn gặp phải Phải quản lý Thread, Code lằng nhằng,khó hiểu Một instance chỉ được thực thi một lần , nên gọi và thực thi ở mainthread có thể block UI Không thể chạy song song, nếu nhiều Intent sẽ được đưa lên hàng đợi của Thread

Trên đây đã nêu ra các điểm khác nhau ,mục đích cũng như tình huống nào thì nên sử dụng loại đa tiến trình nào 😃)) Bài viết là quan điểm cá nhân *Mong mọi người góp ý *