Tôi đọc 2 lý do trên here khi bạn GCM Id đăng ký có thể thay đổi:
- Bạn sẽ cần phải đăng ký lại mọi thiết bị mỗi khi bạn cập nhật ứng dụng của bạn.
- Bạn cũng sẽ cần phải đăng ký lại một thiết bị nếu phiên bản của Android nó chạy đã được cập nhật
PS: tài liệu tham khảo Câu trả lời già bên dưới đã bị xóa khỏi trang của Google, do đó có thể không có giá trị nữa
Nếu bạn nhìn thấy điểm thứ hai dưới tiêu đề Enable GCM trên Architectural Overview trang, nó nói:
Lưu ý rằng Google có thể định kỳ làm mới ID đăng ký, vì vậy bạn nên thiết kế ứng dụng Android của bạn với sự hiểu biết rằng mục đích của com.google.android.c2dm.intent.REGISTRATION có thể được gọi là nhiều lần. Ứng dụng Android của bạn cần có khả năng phản hồi tương ứng.
Vì vậy, để xử lý mà bạn nên có một Broadcast Listener
mà có thể xử lý com.google.android.c2dm.intent.REGISTRATION
ý định, mà Google gửi đến ứng dụng khi nó có để làm mới ID đăng ký. Bộ thu sóng sẽ có phương thức onReceive
với Intent. Từ mục đích, bạn có thể nhận được Bundle
bằng cách sử dụng mà bạn có thể trích xuất ID đăng ký mới từ Google. Bạn có thể lưu và gửi nó đến máy chủ phần thứ ba để thay thế ID đã đăng ký trước đó của bạn cho người dùng đó.
Bạn cũng có thể thấy this câu trả lời cho câu hỏi In GoogleCloudMessaging API, how to handle the renewal or expiration of registration ID?.
Thảo luận về Should applications call gcm.register() every seven days to ensure valid registration IDs? câu hỏi cũng có thể có một số cách sử dụng.
Hy vọng điều này sẽ giúp bạn hiểu cách xử lý.
Nguồn
2013-07-27 00:51:18
bản sao có thể có của [Xử lý thay đổi ID đăng ký trong Google Cloud Messaging trên Android] (http://stackoverflow.com/questions/16838654/handling-registration-id-changes-in-google-cloud-messaging-on-android) – trante
@trante rằng câu hỏi SO là tuổi già và lãng phí thời gian. – Micro