2014-05-03 97 views
6

我正在使用asmack庫實現聊天應用程序。我想開始一個始終運行的服務,在這裏所有的連接管理任務都要完成,並且應該繼續接收傳入的數據包並將消息保存在我的sqlite數據庫中。並且,當我的應用程序啓動時,我希望我的應用程序也可以通知接收消息,而後臺服務將消息插入到sqlite數據庫中。 如何用粘性服務實現這樣的結構。部分喚醒鎖也需要。由於圖像也有時會根據特定需求部分使用http下載。Smack(XMPP)聊天應用程序的Android後臺服務

回答

14

您可以在服務器上註冊後啓動服務。

onStartCommand服務登錄用戶。

用於接收Groupcaht或一對一聊天消息實現與PacketListener,ConnectionListener,InvitationListener

PacketListener服務。

ConnectionListener檢查與服務器的連接是連接還是斷開連接。

InvitationListener獲取羣組邀請。

成功登錄後,添加這些偵聽器。

現在,當收到消息時,在本地數據庫中保存該消息,併發送廣播,以便收到消息。

檢查應用程序在後臺運行,如果是,則發送通知新消息

mail給我,如果有哥們遇到任何問題[email protected]

+0

非常感謝。我也希望應用程序在後臺繼續接收消息。但爲此,用戶必須在線但是當用戶離開聊天窗口時,用戶會在我的應用程序中脫機。 –

+1

然後您的連接必須中斷 實施ConnectionListener以檢查連接正在關閉的位置。 1請回答 –

+0

其實我想開始一個「開始服務(unbind)」,它的任務是處理從接收消息到發送消息的所有事情。我希望我的客戶端就像一個將向服務發出命令的接口一樣,服務將完成必要的工作。 –

相關問題