我正在为学校的工作制作Android Jabber聊天客户端。
到目前为止,一切工作正常。但是当我改变手机的方向时,它会重新连接到服务器。
重新连接只需要3-5秒,但在此期间,如果我发送一条消息,它将导致XMPPConnection变量NullPointerException。
通过谷歌搜索,我发现我可以使用onRetainNonConfigurationInstance,但是我的ChatClient类扩展了Fragment,并且它不可用。
我的目标是4.0.3+,所以我不需要担心兼容性支持之类的问题。
除了使用static变量之外,还有其他解决方案吗?
谢谢
发布于 2012-12-16 17:00:21
我不确定在片段中托管您的xmppconnection是不是一个好主意。
一种常见的方法是将其托管在service中,这样即使应用程序在后台也可以保持连接(并且在任何情况下都不依赖于您的活动/片段重建),或者,如果您对在应用程序处于后台时连接它不感兴趣,另一个好的选择是将xmppconnection托管在一个单独的对象中。
另一方面,如果这是一个学校项目,并且您想要的是片段持久化配置更改,例如旋转,则可以使用setRetainInstance方法:
控制片段实例是否在活动重新创建时保留(例如从配置更改中)。这只能与不在后台堆栈中的片段一起使用。
https://stackoverflow.com/questions/13899835
复制相似问题