Tôi cố gắng để hiểu được những khác biệt chính giữa đăng ký một BroadcastReceiver trong Manifest và đăng ký nó lập trình ...khác biệt chính giữa Manifest và đăng ký theo chương trình của BroadcastReceiver
hiểu biết của tôi về cơ bản là như sau (sẽ đánh giá cao một người nào đó sửa chữa của tôi nếu tôi thiếu cái gì đó).
đăng ký tại Manifest:
- Hệ điều hành sẽ kỳ diệu tìm và nhanh chóng lớp học của bạn nếu cần thiết, gọi phương thức onReceive(), bất kể những gì các trạng thái hoạt động của ứng dụng của bạn là
- bạn nhận được sẽ chỉ được gọi một lần cho mỗi lần phát sóng (tức là bạn có thể xem xét việc đăng ký trong tệp kê khai giống như đăng ký 'lớp' của bạn để nhận chương trình phát sóng - và phát sóng ngay lập tức cho lớp của bạn nếu cần) (??)
đăng ký lập trình:
- đăng ký trong mã có nghĩa là bạn đang đăng ký thể hiện của lớp của bạn để nhận tin nhắn quảng bá (ví dụ: nếu mã của bạn hơi cẩu thả và bạn quản lý đăng ký nhiều lần, bạn sẽ kết thúc với nhiều phiên bản BroadcastReceiver tất cả đều có onReceive() được gọi cho một số phát sóng
- để hủy đăng ký, bạn cần hủy đăng ký phiên bản BroadcastReceiver cụ thể mà bạn trước đây đã đăng ký
- nếu ứng dụng của bạn bị phá hủy bởi hệ điều hành, phương pháp onReceive của bạn() sẽ không được gọi cho một phát sóng
nhờ
Và tôi đoán rằng nếu dịch vụ của bạn gặp sự cố khi người phát hiện quảng cáo của bạn được khai báo trong tệp kê khai, người nhận sẽ vẫn nhận được tin nhắn ... – Boy
@Boy: Vâng, phải vậy. – CommonsWare
xin vui lòng bạn có thể tra cứu nếu có liên quan đến vấn đề của tôi: http://stackoverflow.com/questions/29728000/wifi-changed-status-affecting-my-app –