如何在Android 4.0.3中通过套接字进行通信

如何在Android 4.0.3中通过套接字进行通信,android,c,sockets,communication,Android,C,Sockets,Communication,我已经有了一个套接字通信接口,它在2.3版本中运行良好,但在4.0.3版本中不起作用,我听说在这个版本中不可能在与UI相同的线程中进行这种通信,因此,我是android初学者,在4.0.3版本中没有发现任何关于这种通信的示例,你有什么例子或者能告诉我怎么做吗 提前感谢在不同线程上工作的最简单方法是使用。请注意,如果上下文被破坏(例如,如果屏幕旋转),异步任务将中断。您还需要处理此类事件 你可以从这里开始阅读。以下是文档中的引用: AsyncTasks最好用于短期操作(最多几秒钟)。如果您需要让线

我已经有了一个套接字通信接口,它在2.3版本中运行良好,但在4.0.3版本中不起作用,我听说在这个版本中不可能在与UI相同的线程中进行这种通信,因此,我是android初学者,在4.0.3版本中没有发现任何关于这种通信的示例,你有什么例子或者能告诉我怎么做吗


提前感谢

在不同线程上工作的最简单方法是使用。请注意,如果上下文被破坏(例如,如果屏幕旋转),异步任务将中断。您还需要处理此类事件

你可以从这里开始阅读。

以下是文档中的引用:

AsyncTasks最好用于短期操作(最多几秒钟)。如果您需要让线程长时间运行,强烈建议您使用java.util.concurrent pacakge提供的各种API,如Executor、ThreadPoolExecutor和FutureTask


当您使用ICS或JB时,将限制您从主活动中打开网络连接。您将收到一条关于网络权限的不透明错误消息。从ICS开始就是这样(所以froyo和GB不会抱怨)

我不能在这里重复我对另一个类似StackOverflow问题的回答(这被版主认为是垃圾邮件),但你可以


我在那里发布了一个使用asynctask的功能性发送和接收套接字连接器客户端。

您可以而且应该在单独的线程中进行网络操作。有关更多信息,请参阅默认Java线程或异步任务。有很多例子。但是我想在整个程序的整个运行时都保持这种通信,在这种情况下,AsyncTask是最好的解决方案吗?你想在应用程序启动时建立连接,并在整个运行时保持它的活动状态吗?如果这就是你计划做的,我认为这是没有必要的。为什么要这样做?很抱歉这么晚了,我必须一直与PLC通信以发送和接收数据,以保持屏幕刷新PLC的状态。在这种情况下,您可以尝试使用startService()。但这并不能阻止Android在资源不足时终止您的服务。