2014-06-26 137 views
1

我對java服務器端開發很新,我跟着這個鏈接[http://javapapers.com/android/google-cloud-messaging-gcm-for-android-and-push-notifications/][1]併成功實現了GCM與我的android設備,問題是不知道如何觸發GCM服務器,而我的數據庫中的內容更新時,我需要通知我的數據庫的每個更新給用戶,我需要使用計時器任務類似的數據庫觀看數據庫或有任何默認解決方案來跟蹤數據庫?如何觸發一個gcm發送推送通知到android設備

我的服務器端代碼:

regId = "my registration id"; 
       String userMessage = request.getParameter("message");    
       Sender sender = new Sender(GOOGLE_SERVER_KEY); 
       Message message = new Message.Builder().timeToLive(30) 
         .delayWhileIdle(true).addData(MESSAGE_KEY, userMessage).build();         
       result = sender.send(message, regId, 1); 

已經嘗試了許多解決方案,但至今沒有得到確切的解決方案,建議,想法或相關鏈接是最歡迎的 預先感謝

回答

1

不知道具體你的服務器和應用程序的功能,我只能提供一個通用的解決方案。

執行數據庫更新的服務器中的每個進程必須通過GCM推送到某些Android設備才能將消息和註冊ID寫入某種類型的隊列。

然後,您可以使用另一個進程(或多個進程)來消費GCM消息隊列,並將它們發送給Google。這些進程可以處理失敗(如果發生臨時失敗,請重試發送消息),如果他們收到具有規範註冊ID或InvalidRegistration或NotRegistered等錯誤的響應,則更新註冊ID的數據庫。

+0

感謝您的答覆,我如何跟蹤數據庫的更新,我需要使用計時器任務來觀看數據庫的更新? – Madhu

+0

@Bindhu發送GCM消息的線程可以在一個循環中運行,並每隔X秒喚醒以檢查隊列中是否有新消息要發送。 – Eran

+0

非常感謝這是我期待的,這是新手,以至於無法清楚地知道,現在我有了一個想法。 – Madhu

相關問題