2012-12-19 37 views
8

Gói tương thích của Android hỗ trợ LocalBroadcastManager, cho phép gửi các chương trình phát sóng trong quá trình của tôi. http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.htmlLocalBroadcastManager vs sử dụng callbacks

Cho đến bây giờ tôi đã sử dụng gọi lại (Giao diện tương tự như OnClickListener) để chuyển dữ liệu (không đồng bộ và đồng bộ) giữa các phần khác nhau của ứng dụng.

Tôi đã tự hỏi liệu cái nào tốt hơn cái kia hay không. Bất kỳ ý kiến ​​nào?

Trả lời

6

LocalBroadcastManager phép bạn sử dụng Intent 's và IntentFilter' s nên nó dễ dàng hơn để di chuyển từ chương trình phát sóng trên toàn hệ thống cho những người địa phương. Nó cũng có một số mã xếp hàng và có thể đáng tin cậy hơn mã của riêng bạn (hoặc không, tùy thuộc vào cách bạn triển khai thực hiện tinh vi). Ngoài ra, về cơ bản nó chỉ giữ danh sách người nhận trong bộ nhớ và lặp lại chúng để tìm một kết quả phù hợp.

khác, thay thế là sử dụng một xe buýt trường hợp như của Square Otto (dựa trên ổi), có thêm gõ an toàn và là cũng giống như hiệu quả.

1

Như tôi đã biết, LocalBroadcastManager hoạt động như một sự quyến rũ. Đó là rắc rối miễn phí và bạn có thể vượt qua bất kỳ đối số trong Intent và lấy nó trở lại trong khi nghe. Độ tin cậy duy nhất là người quản lý phát sóng đặt ý định vào hàng đợi.

Khi nào bạn nên sử dụng LocalBroadCastManager? Khi bạn có một hoạt động đơn lẻ (FragmentActivity) và tấn các lớp Fragment, thì sẽ dễ dàng hơn để có một LocalBroadcastManager trong một Hoạt động đơn lẻ.

Nếu bạn có nhiều hoạt động thì việc sử dụng này có thể hữu ích, nhưng cũng lưu ý rằng bạn đã sử dụng ý định để khởi chạy các hoạt động mới, vì vậy nếu có bất kỳ mục đích nào đang chờ xử lý thì Broadcast này sẽ nằm trong Hàng đợi và bạn sẽ cần phải chờ đợi.

Vì vậy, việc sử dụng tốt nhất là Hoạt động đơn lẻ với nhiều Phân đoạn.

+0

Tôi đã khôi phục bản chỉnh sửa của bạn vì nó phải là nhận xét và chỉnh sửa của bạn ngụ ý tôi đã đồng ý với câu trả lời của bạn. Các hoạt động và mảnh vỡ nhận thức được trường hợp của nhau. Callbacks (thậm chí chỉ là một giao diện chung cho tất cả các Fragments) là đơn giản hơn để thiết lập (so với việc tạo, bộ lọc, đăng ký, hủy đăng ký, vv) và bạn có thể vượt qua bất kỳ loại đối tượng nào giữa chúng. Các chương trình phát sóng cục bộ phù hợp hơn với những thời điểm bạn không có quyền truy cập vào cá thể của đối tượng khác (ví dụ: Dịch vụ). –

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