我试图开发一个简单的聊天应用程序,只是为了学习。
我的问题是,当屏幕方向改变时,TCP/IP连接将关闭,并在方向改变后重新创建。
我知道android会破坏活动,并在改变方向时重新创建它。
所以我的问题是:只改变视图是可能的,但其他一切都保持不变?
谢谢

最佳答案

好吧,这里真正的问题是您在主UI线程上执行TCP/IP连接,这是一个糟糕的想法,因为您有可能阻止触摸事件和生成布局。现在大多数新设备上都会抛出一个NetworkOnMainThreadException来防止这种行为。
我要做的是将tcp/ip连接包装在一个Thread中,然后在一个worker(非ui,不可见)中用Thread执行Fragment。这样可以在配置更改时保护您的setRetainInstance(true),因为即使在Thread被破坏时,Fragment仍将保留在内存中。您可以阅读更多关于此方法的信息。
如果TCP/IP连接需要跨多个Activity实例存在,则应改用Activity

10-08 13:29