2016-03-25 51 views
0

我應該每次用戶輸入主要活動時進行呼叫,還是應該在用戶首次安裝應用時纔開始呼叫?多久撥打一次GCM RegistrationIntentService

startService(new Intent(this, RegistrationIntentService.class)) 
+0

爲什麼選擇投票?這是一個完全有效的問題。 Google正在他們的github示例上的onCreate方法中獲取標記,這沒有多大意義。 https://github.com/googlesamples/google-services/blob/master/android/gcm/app/src/main/java/gcm/play/android/samples/com/gcmquickstart/MainActivity.java#L73 – feresr

回答

0

本質上RegistartionIntentService會做同樣的動作(註冊您的應用程序使用你的應用程序中獲取令牌谷歌的SNS服務器),所以每次做這幾乎是usless,我說你應該只做到這一點在應用程序第一次打開後一次。

+0

和什麼當一個令牌到期時發生,我如何從我的服務器獲得一個新的(從那個應用程序實例) –

+0

你也可以將該令牌稱爲registrationId,基本上我知道它應該是唯一的每用戶每個應用程序per-安裝(並不會過期,直到卸載)的更多細節看到這個線程 - http://stackoverflow.com/questions/16838654/handling-registration-id-changes-in-google-cloud-messaging-on-android – crazyPixel

+0

我的理解是否會發生令牌損壞,並且在這種情況下,GCM需要通過'String token = instanceID.getToken ...')向我發送一個新令牌以傳遞給我的服務器。 –

0

爲了向設備發送推送通知,您需要運行註冊服務時由您的應用程序生成的註冊令牌。您在註冊設備後使用該令牌所做的工作由您決定。我做的是,當我的用戶登錄到我的應用程序時,我運行我的GCM註冊服務,爲我生成一個令牌,然後將該令牌(以及登錄的用戶信息)發送到我的後端數據庫。從那一刻起,我的後端代碼知道用戶已經註冊了他們的設備,並且每當我需要向他們發送一個推送時,我都知道使用該令牌發送它。

當用戶註銷時,我再次調用API到刪除GCM註冊令牌我的後端數據庫(你沒有,但它的我是怎麼做的。)

的一點是,一旦您獲得註冊服務的令牌,您對此的處理是您的責任。保存它,存儲它等等。你只需要得到它一次 - 然後你可以發送你想要的所有推動。