我正在为学校的工作制作Android Jabber聊天客户端。
到目前为止一切正常。但是当我改变手机的方向时,它将重新连接到服务器。
重新连接只需要3-5秒,但在此期间,如果我发送消息,则会导致NullPointerException
XMPPConnection
变量。
通过Google搜索,我发现我可以使用onRetainNonConfigurationInstance
,但我的ChatClient
课程延伸Fragment
并且无法使用。
我的目标是4.0.3+,所以我不需要担心兼容性支持等。
除使用static
变量之外的任何解决方案?
由于
答案 0 :(得分:1)
我不确定在片段中托管你的xmppconnection是个好主意。
一种常见的方法是将其托管在service内,这样即使应用程序处于后台(并且在任何情况下都不依赖于您的活动/片段重新创建),您的连接仍可以保持,或者,如果您当你的应用程序在后台时,它对连接它不感兴趣,另一个好的选择是将xmppconnection托管在一个单例对象中。
另一方面,如果这是一个学校项目,你想要的只是片段在轮换等配置更改时保持不变,你可以使用 setRetainInstance方法:
控制是否在活动重新创建(例如从配置更改)中保留片段实例。这只能用于不在后栈中的片段。