我正在嘗試將GCM
整合到我的應用中。我在onRegistered()
許多地方閱讀,我們應該在共享首選項上存儲regId
。任何人都可以告訴,爲什麼需要將ID存儲在共享首選項中。我看到了GCMRegistrar.java
的代碼,它在內部正在執行這個機制。那麼爲什麼需要手動將ID存儲在共享首選項中。在共享偏好上存儲註冊ID GCM
回答
你不需要將其保存在sharedPreference.Use以下行
final String regId = GCMRegistrar.getRegistrationId(getApplicationContext());
if (regId.equals("")) {
GCMRegistrar.register(this,SENDER_ID);
} else {
//Already registered
}
如果registartion id爲null,你可以去註冊..
這是一個設計選擇。您可能希望將其存儲在SharedPreferences
中,存儲在文件或SQLite數據庫中。這真的取決於應用程序以及您試圖用它來完成什麼。
至於爲什麼GCMRegistrar.java
示例將它存儲在SharedPreferences
- 我認爲這樣做,因爲在更新應用程序時需要使本地存儲的設備ID無效/刪除,這很容易通過刪除原始數據來完成,保存在設備上。比查詢數據庫或通過rmfile()
刪除文件更容易和節省資源(不超過3-4行代碼所需)。
其簡單。不要讓它變得複雜。 由於您的設備已通過GSM註冊,因此不會自動獲取通知。 您必須向需要註冊ID的第三方服務器註冊設備。
由於id存儲在pref中,它不會一次又一次地註冊設備。
是不是很簡單?什麼都沒有做別的? –
我認爲你必須自己註冊才能在將來使用它,例如與指定你的REGID的推送服務器通信。
此方法用於不每次註冊設備。
- 如果你使用gcm-client.jar,那麼你不需要擔心它。這是在這個jar文件中實現的。
如果你想自己實現它,那麼你可以
- 保存registrationId使用SharedPreferences或將其保存在數據庫或文件系統等
- 沒有保存registrationId和註冊設備的每一個time.However,這不是一個好的設計選擇,因爲它在應用程序啓動時需要多一次迭代(從Google獲取註冊ID)。
謝謝..這是我的疑問..我使用GCM.jar。所以我想我不需要擔心這個。 – Rookie
- 1. Android登錄/共享偏好註冊
- 2. android共享偏好存儲多個值;
- 3. 共享偏好項目存儲
- 4. GCM註冊ID
- 5. 我們可以在SD卡上存儲共享偏好
- 6. Android GCM註冊ID
- 7. Android GCM註冊ID
- 8. Android共享偏好
- 9. Android共享偏好
- 10. Android GCM:在數據庫中存儲註冊ID的問題
- 11. 在註冊ID更改後處理GCM中存儲的消息
- 12. 的android共享偏好和捆綁包VS共享偏好
- 13. 共享偏好以及偏好片段
- 14. 鈦iPhone存儲變量值在共享偏好
- 15. 存儲在共享偏好中的值未被反映
- 16. 我有存儲在一個共享偏好
- 17. 設備上的不同GCM註冊ID
- 18. 什麼是GCM註冊ID?
- 19. 管理GCM註冊ID的
- 20. GCM註冊ID爲空
- 21. Android GCM:空註冊ID
- 22. GCM:註冊ID或令牌
- 23. Android GCM註冊ID錯誤
- 24. GCM註冊ID已更改
- 25. Android GCM檢索註冊ID
- 26. android GCM註冊ID空白
- 27. GCM框架參數和GCM註冊ID
- 28. GCM註冊令牌是否等於GCM註冊ID?
- 29. 如何註冊gcm從gcm獲得註冊ID
- 30. 如何唯一地將GCM註冊ID存儲到MySQL中
任何人都在看這個。不要使用它。 GCMRegistrar已棄用。實際上你應該將它保存在sharedPrefs中。請參閱此處的指南https://developer.android.com/google/gcm/client.html – 2015-01-14 20:45:42