2013-07-17 89 views
3

我正在嘗試爲Android創建一個即時消息應用程序,我已將接口發送到我的數據庫,並且工作正常。問題是我不知道如何讓偵聽器接收來自數據庫的消息。爲Android創建即時消息應用程序

我正在考慮使用定時器每5或10秒詢問一次,如果客戶端有新消息,請下載它。我試了一下,如果我使用的應用程序它的工作原理,但是當我使用相同的代碼來通知客戶有關新消息的計時器不起作用,客戶端永遠不會得到通知。

希望你能幫助我一些想法。謝謝。

回答

5

使用計時器會在這個間隔時間內消滅手機電池。你需要考慮使用Google Cloud MessagingXMPP通知新郵件到達

0

使用廣播接收器來處理傳入的消息 不要用拉,每5分鐘或10分鐘會消耗電池後,連接的設備 使用GCM(谷歌雲消息傳遞)

1

由於以前的答案建議使用計時器是一個非常糟糕的想法導致電池壽命。谷歌雲消息/ XMPP聽起來不錯,你可以使用廣播接收器來處理傳入的消息。

簽出約本教程:Create an Instant Messaging app using Google Cloud Messaging (GCM)

顯示清晰實現上述技術。它還有一個用java編寫的基本服務器後端,運行在谷歌應用引擎上。幫助我在android中構建了我的即時通訊工程。

1

此外,我建議你也可以使用MQTT在你的android應用程序中實現即時消息。使用Eclipse Paho Android庫來實現MQTT。它有它自己的onMessageArrived()方法,每當收到新消息時都會調用它。

檢查新消息每5到10秒是一個壞習慣,因爲它消耗電池。 MQTT與MQTTserver建立低級TCP連接,是即時消息的理想選擇。

0

接收到消息時,API自動支持這些消息,這會將消息從服​​務器上刪除。

輪詢10次意味着讀取,處理和刷新緩衝區10次,所以它不像您將在第7次輪詢期間從第一次輪詢中找到數據。