2015-01-28 15 views
8

Có rất nhiều ví dụ về StackOverflow và các nơi khác sử dụng lớp LocalBroadcastManager để tránh sự kiện phát sóng bên ngoài ứng dụng.Tương đương với LocalBroadcastManager không có thư viện hỗ trợ Android

Tuy nhiên, lớp học này sử dụng thư viện hỗ trợ Android như được hiển thị trong tên gói: android.support.v4.content.LocalBroadcastManager.

Có tương đương LocalBroadcastManager trong SDK chuẩn không sử dụng thư viện hỗ trợ Android không?

Dường như phương pháp sendBroadcast trong android.content.Context không có mức độ chi tiết bảo mật này.

Trả lời

2

Không tồn tại, Nếu bạn muốn tạo lại lớp này, bạn có thể đọc mã nguồn để tự triển khai mà không cần sử dụng lib hỗ trợ. Dù sao, có vấn đề gì khi sử dụng lib hỗ trợ? nó nhẹ.

Một cách giải quyết khác có thể là sử dụng BroadCastReceiver bình thường và đặt <android:exported="false"> trên tệp kê khai của bạn, bên trong bộ thu này, điều này tránh các ứng dụng khác gửi cho bạn ý định, vì vậy bạn đang giả mạo người nhận tại địa phương.

Lưu ý: Tôi nói giả mạo, bởi vì LocalBroadcastManager có tối ưu hóa, bằng cách không truyền bá ý định hệ thống ...

Hope this helps.

+1

Thực ra tôi đã đi đến cùng một kết luận sau khi đã đọc mã nguồn của LocalBroadcastManager và sau khi hiểu rõ hơn về sự hợp lý đằng sau các thư viện hỗ trợ Android. Dù sao hôm nay tôi sẽ sử dụng một cái gì đó giống như EventBus. –

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