2012-02-24 54 views
18

Tôi đang cố gắng tìm ra sự khác biệt giữa một chuỗi và trình xử lý. Việc tạo một trình xử lý mới có tạo một chuỗi mới không ?. Khi một trình xử lý mới được chạy bằng cách sử dụng post(), nó có tạo ra một luồng mới không? Vui lòng giải thíchSự khác biệt giữa Chủ đề và Trình xử lý

Trả lời

20

Chủ đề là các tác vụ xử lý chung có thể thực hiện hầu hết mọi thứ, nhưng một điều họ không thể làm là cập nhật giao diện người dùng.

Trình xử lý mặt khác bị ràng buộc vào chủ đề cho phép bạn giao tiếp với chuỗi giao diện người dùng (cập nhật giao diện người dùng).

Vì vậy, ví dụ hiển thị bánh mì nướng hoặc cập nhật thanh tiến trình qua một tin nhắn (Runnable) được gửi tới trình xử lý nhưng bạn không thể nếu bạn bắt đầu chuỗi này dưới dạng chuỗi.

Với trình xử lý, bạn cũng có thể có những thứ như MessageQueuing, lập lịch và lặp lại.

Tôi chưa gặp phải tình huống mà tôi cần một chuỗi trong Android.

Tôi chủ yếu sử dụng kết hợp AsyncTask và Trình xử lý.

Trình xử lý cho các tác vụ nói trên.

AsyncTasks để tải về/dữ liệu quyến rũ và bỏ phiếu, vv

Bạn có thể đọc bài viết phát triển ở đây "Painless Threading" cho luồng hơn trong Android.

Chỉnh sửa: Mỗi phiên bản Trình xử lý được liên kết với một chuỗi đơn lẻ và hàng đợi tin nhắn của chuỗi đó. Họ không phải là chủ đề thay mặt cho họ. như được mô tả here.

+3

Trình xử lý không phải là Chủ đề – Selvin

+0

Đúng, đã sửa – MahdeTo

2

Một chuỗi xác định quy trình đang chạy. Giống như bạn có một chủ đề chính (giao diện người dùng) trong Android. và tất cả các chủ đề khác chạy trong nền. (song song).

Handler là hoàn toàn khác nhau, nó cũng giống như bắt đầu nhiệm vụ quy định tại một handler ..

để xóa bỏ mọi sự nhầm lẫn của mình, và thực hiện các luồng trong android bạn phải đọc: http://android-developers.blogspot.com/2009/05/painless-threading.html

và tôi sẽ đề nghị AsyncTask thay vì sử dụng Thread trong mọi trường hợp.

0

Tại sao chúng ta sử dụng bộ xử lý với chủ đề:

Khi chúng ta cài đặt một ứng dụng trong android sau đó nó tạo ra một chủ đề cho ứng dụng đó gọi CHỦ UI Chủ đề, tất cả các hoạt động chạy bên trong chủ đề đó, bởi mô hình chủ đề duy nhất android quy tắc, chúng tôi không thể truy cập các phần tử giao diện người dùng (bitmap, textview v.v ..) trực tiếp cho một luồng khác được xác định bên trong hoạt động đó.

Vì vậy, nếu muốn truy cập vào giao diện người dùng chính Các phần tử chủ đề theo một chuỗi khác thì chúng tôi sẽ sử dụng trình xử lý.

Các vấn đề liên quan