在Fragment类中更改方向时保留数据

时间:2012-12-16 08:50:13

标签: android orientation

我正在为学校的工作制作Android Jabber聊天客户端。

到目前为止一切正常。但是当我改变手机的方向时,它将重新连接到服务器。

重新连接只需要3-5秒,但在此期间,如果我发送消息,则会导致NullPointerException XMPPConnection变量。

通过Google搜索,我发现我可以使用onRetainNonConfigurationInstance,但我的ChatClient课程延伸Fragment并且无法使用。

我的目标是4.0.3+,所以我不需要担心兼容性支持等。

除使用static变量之外的任何解决方案?

由于

1 个答案:

答案 0 :(得分:1)

我不确定在片段中托管你的xmppconnection是个好主意。

一种常见的方法是将其托管在service内,这样即使应用程序处于后台(并且在任何情况下都不依赖于您的活动/片段重新创建),您的连接仍可以保持,或者,如果您当你的应用程序在后台时,它对连接它不感兴趣,另一个好的选择是将xmppconnection托管在一个单例对象中。

另一方面,如果这是一个学校项目,你想要的只是片段在轮换等配置更改时保持不变,你可以使用 setRetainInstance方法:

  

控制是否在活动重新创建(例如从配置更改)中保留片段实例。这只能用于不在后栈中的片段。