2012-06-17 23 views
0

假设我在Activity A中创建了一个客户端TCP套接字。我想将该套接字发送给Activity B.现在在Activity B中,基于某些条件,我将关闭该套接字。问题是intent.putExtra()不支持发送套接字。那么该怎么做?如何在android中将TCP套接字从一个活动发送到另一个活动?

+2

[如何在活动之间传递socket,inputstream,outputstream对象](http://stackoverflow.com/questions/3137223/how-to-pass-socket-inputstream-outputstream-objects-between-activities) –

回答

5

如果您认为有多个“拥有”套接字的活动,那么它们都不应该“拥有”套接字。其他的东西,比如Service,应该负责管理套接字。在这种情况下,活动A可以启动Service来完成套接字工作,而活动B可以在不再需要套接字时停止服务。

否则,如果那些活动紧密结合,则不应该是单独的活动。活动旨在松散耦合,类似于Web应用程序中的网页。

+0

ya正确。但是你需要一些参考来关闭这个套接字。对吧?那是什么参考? – vij

+0

@vij:“但是你需要一些参考来关闭那个套接字,对吗?” - 如果它由服务管理则不适用。从您的活动的角度来看,“参考”是服务的名称,或者您正在使用的任何内容来构建'Intent'来标识您的'startService()'和'stopService()'调用的服务。服务本身保存你的套接字并管理该套接字上的通信线程(例如,分支线程在该套接字上收听传入消息)。 – CommonsWare

+0

服务本身。您打电话给SErvice,然后采取适当的措施。 SErvice'管理'TCP连接 – Kerry

相关问题