我是Android的新手。 我正在爲我的項目開發一個客戶端(android)-server(java)arcitecture應用程序。我有問題。 我的4-5活動將發送tcp消息到服務器並獲得迴應,以自己做一些事情。所以我需要一個背景聽衆這些消息,然後在這些4-5活動中做一些事情。我在哪裏可以實現這個監聽器線程來響應我的不同行爲。將這些Activites的子類中的5個AsyncTask寫入消息傳遞服務器是否是一種好方法? 我覺得1個線程可以做的工作;但我怎麼能綁定活動.. 即時通訊談論的服務?但是當我的應用程序被破壞時,我不想做點什麼。我如何在Android客戶端設計tcp消息監聽器?
0
A
回答
0
我寫了一個非常類似的應用程序,並使用一個單例來完成這項工作。當你的活動被創建時,調用Listener.getInstance()來獲取Listener的實例。如果尚未創建,請創建它。
在Listener對象中,創建一個線程來執行所有套接字通信。當消息變得可用時,使用處理程序(或其他一些同步機制)將其發回到主GUI線程。
public class Listener implements Runnable, Callback
{
String ipAddress;
int ipPort;
private listener = null;
Handler handler;
public Listener
{
handler = new Handler(this);
}
public Listener getInstance()
{
if (listener == null)
listener = new Listener()
return listener;
}
public void connect()
{
thread = new thread();
thread.run(this);
}
public void run()
{
socket = new Socket();
socket.connect(new InetSocketAddress(ipAddress, ipPort));
//do your thread/socket work...
//when a message is available via the socket, post the message back to the main GUI thread using a handler.
Message msg = new Message();
//fill the msg with data
handler.sendMessage(msg);
}
@Override public boolean handleMessage(Message msg)
{
//hand message to current activity
}
}
一個偉大的插座例如可以在這裏找到:HTTP://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/
作爲另外,你可以在一項服務中完成所有這些工作。我剛開始時就選擇了這條道路。它對我來說效果很好。
相關問題
- 1. JMS消息監聽器設計
- 2. Tcp客戶端/服務器 - 客戶端消息問題
- 3. C#Tcp客戶端不能發送消息到Android服務器
- 4. TCP客戶端的消息處理
- 5. C#客戶端服務器TCP客戶端收聽
- 6. Python TCP客戶端到客戶端的消息轉發
- 7. Apache mina的客戶端監聽器FtpServer
- 8. Android客戶端TCP
- 9. 在TCP客戶端/服務器程序中未收到消息
- 10. 大容量TCP客戶端的設計
- 11. IBM MQ消息監聽器
- 12. 兔MQ消息監聽器
- 13. WCF監聽TCP端口
- 14. MATLAB監聽TCP/IP端口
- 15. TCP/IP服務器如何偵聽多個客戶端?
- 16. 使用Netty(tcp),發送消息從客戶端在Android到服務器
- 17. Android的TCP客戶端。服務器在進程停止後才接收消息
- 18. TCP監聽器停止監聽
- 19. 客戶聽服務器消息
- 20. 監聽器到客戶端的套接字(Android)
- 21. Python TCP Socket服務器存儲來自客戶端的消息
- 22. Qt TCP服務器/多客戶端消息讀取
- 23. Erlang tcp服務器/客戶端發送消息
- 24. TCP客戶端不接收服務器的消息
- 25. 使用Disque將消息傳遞給所有正在監聽的客戶端
- 26. C#TCP客戶端發送消息,但服務器未接收到該消息
- 27. TCP的java聊天,客戶端不聽
- 28. Android的TCP客戶端
- 29. Android中的TCP客戶端
- 30. Android Studio TCP客戶端
謝謝你的回答,我開始寫一個服務來完成所有這些工作。 – 2012-03-21 23:11:12