我有IP客户端应用程序,其中包含以下对象:
Socket
实例连接到IP服务器。
Thread
实例,执行ThreadFunction
。此功能在连接时连续读取插座。
现在我想要了解,我该怎么做,何时重新创建活动(例如,在更改屏幕方向后)。 Socket
实例丢失了吗? ThreadFunction
会发生什么?看看另一方的行为(IP服务器),我发现客户端Android应用程序没有断开连接。那么,在这种情况下我的策略应该是什么:我应该再次创建这些资源,还是尝试通过某种方式恢复它们?
答案 0 :(得分:1)
我建议使用Service。它旨在满足您的要求。
答案 1 :(得分:1)
你的问题的答案与应用程序被销毁时资源会发生什么有关,就是一切都消失了,包括套接字和runnables。
即使从服务器端,只要服务器尝试通过它进行通信,套接字就会消失。
您说的最佳解决方案就是使用服务来管理它。它与使用某个活动非常相似,我邀请你看几个例子。
如果您真的希望在不使用服务的情况下使您现在拥有的内容保持一致,则可以禁用将android:configChanges="orientation"
添加到AndroidManifest.xml
的屏幕轮换