2012-11-24 50 views
2

對不起我的長問題,但我需要解釋它。如何在android中控制多個聊天活動?

我正在開發使用asmack API的android聊天客戶端。我創建了連接並可以與朋友聊天。現在我正在將其更改爲GUI客戶端,並希望具有用戶可以與多個朋友聊天的功能。這意味着如果兩個聊天活動都處於開放狀態,則其中一個將處於活動狀態,另一個處於暫停狀態。我需要一些想法,我如何添加此功能,用戶可以同時與多個用戶聊天。我是否需要實現一些後臺服務,以便與暫停的活動進行通信,或者可以通過其他方式來實現?

如果我需要實現後臺服務,可能是服務的功能是什麼?如果我在錯誤的軌道上,請引導我。

+0

我之前做過這個。這遠非簡單的解釋。您可以存儲活動並使用班級擴展對話框來顯示當前聊天。它與'Alt' +'Tab'類似。 –

+0

@Yul謝謝您的留言。你有任何關於這個功能的幫助材料嗎?如果你提供更多的細節或任何幫助教程,這將是非常有益的。商店活動是什麼意思?爲什麼我需要將我的課程擴展到Dialog?其實我不是android自己學習它的專家。 –

+0

你也有這個問題:http://stackoverflow.com/questions/15223492/cant-get-history-of-multiuserchat-room-when-connecting-to-more-then-1-room真的堅持在這: ( –

回答

1

整個聊天系統應該與用戶界面分開。而UI應該簡單地「綁定」聊天「流」來發送/接收數據。這可以讓你在聊天間切換,這些「隱形」聊天仍然可以接收來自各方的消息。你也希望你的應用程序能夠在應用程序處於「後臺」時接收消息,所以沒有其他選擇。更不用說這種方法可以幫助您構建帶有多個可見聊天的平板電腦的用戶界面。

+0

感謝您的回答,但我想知道聊天系統應該是一個服務,或者它可以是一個普通的聊天活動類?我不認爲它應該是一個活動類,它擴展了一個活動,但它應該擴展服務類它可以在後臺運行 –

+0

它必須是服務,否則你的聊天系統將無法工作,如果用戶離開你的活動 –

0

是的,您可以使用長時間運行的服務。實際上,我擴展了Application類,它的生命週期比Service類短得多,但由於移動環境中帶寬/連接性/電池的限制,我不需要它來維持持久連接。

爲了解決這個問題,我利用廣播接收器和谷歌GCM API接收離線通知。

很明顯,您還必須實施自己的內部意圖服務,以在聊天已到達時通知活動。

希望這會有幫助