Cùng phân biệt sự khác nhau về đa tiến trình trong Android : Thread, Handler, Asyntask, Service, IntentService
Bài đăng này đã không được cập nhật trong 7 năm
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 ý *
All rights reserved