Câu trả lời:
Đây là những gì SDK Android nói vềsendStickyBroadcast()
:
Thực hiện sendBroadcast (Intent) "dính", có nghĩa là Intent bạn đang gửi vẫn tồn tại sau khi quá trình phát sóng hoàn tất, để những người khác có thể nhanh chóng truy xuất dữ liệu đó thông qua giá trị trả về của registerReceiver (BroadcastReceiver, IntentFilter). Theo tất cả các cách khác, điều này hoạt động giống như sendBroadcast (Intent).
Một ví dụ về truyền phát cố định được gửi qua hệ điều hành là ACTION_BATTERY_CHANGED
. Khi bạn kêu gọi registerReceiver()
hành động đó - ngay cả với dấu null
BroadcastReceiver
- bạn sẽ nhận Intent
được lần phát cuối cùng cho hành động đó. Do đó, bạn có thể sử dụng tính năng này để tìm trạng thái của pin mà không nhất thiết phải đăng ký tất cả các thay đổi trạng thái trong tương lai của pin.
Các loại : - Cục bộ, Bình thường, Có thứ tự và Cố định
Phát sóng bình thường
: - sử dụng sendBroadcast ()
: - phát sóng không đồng bộ
: - bất kỳ máy thu nào nhận được phát sóng không theo thứ tự cụ thể nào
Phát sóng có thứ tự
: - sử dụng sendOrderedBroadcast ()
: - phát sóng đồng bộ
: - máy thu nhận được quảng bá trong cơ sở ưu tiên
: - chúng tôi cũng có thể đơn giản hủy phát sóng theo kiểu này
Phát sóng địa phương
: - chỉ sử dụng khi quảng bá chỉ được sử dụng trong cùng một quy trình
Phát sóng hấp dẫn
: - mục đích phát sóng bình thường không còn nữa sau khi điều này được hệ thống gửi và xử lý.
: - sử dụng sendStickyBroadcast (Ý định)
: - ý định tương ứng là cố định, nghĩa là ý định bạn đang gửi vẫn tồn tại sau khi quá trình phát sóng hoàn tất.
: - vì điều này những người khác có thể nhanh chóng lấy dữ liệu đó thông qua giá trị trả về của registerReceiver (BroadcastReceiver, IntentFilter).
: - ngoài điều này giống như sendBroadcast (Intent).
sendbroadcast()
- phát sóng bình thường, nhưng chúng ta cũng có thể đặt mức độ ưu tiên.
sendstickybroadcast()
- ý định được thông qua với điều này sẽ phù hợp với những người dùng trong tương lai đang đăng ký thông qua mã (bộ thu động). Chương trình phát sóng sẽ gắn với android và sẽ được phân phối lại hoặc phát lại theo yêu cầu trong tương lai từ bất kỳ bộ thu phát sóng nào
Khi ai đó gửi một chương trình phát sóng cố định bằng cách sử dụng sendstickyBroadcast(intent);
thì chương trình phát sóng đó sẽ khả dụng cho những người dùng tương lai đang sử dụng bộ thu động.
Nhưng bây giờ bạn không nên sử dụng sendStickyBroadcast()
phương pháp nó không được chấp nhận
Từ Tài liệu Android:
Phương pháp này không được chấp nhận ở cấp API 21. Không nên sử dụng các chương trình phát sóng cố định. Chúng không cung cấp bảo mật (bất kỳ ai cũng có thể truy cập chúng), không bảo vệ (bất kỳ ai cũng có thể sửa đổi chúng) và nhiều vấn đề khác. Mô hình được đề xuất là sử dụng chương trình phát sóng không cố định để báo cáo rằng có điều gì đó đã thay đổi, với một cơ chế khác để ứng dụng truy xuất giá trị hiện tại bất cứ khi nào muốn
Tôi hi vọng cái này giúp được.