2017-06-14 73 views
0

我有用于创建连接到服务器的客户端的类。它具有以下部件:如何为我的课程实现Parcelable对象?

public class MyClientThread implements Runnable, Parcelable { 

    private TextView ClientServerMsg; 
    private Integer PortNumber = 4545; 
    private String IPAddress = "127.0.0.1"; 
    private Activity activity; 
    private Socket clientSocket; 
} 

当用户旋转屏幕,所有的客户对象数据丢失/复位和客户端具有与服务器重新连接。

虽然实施writeToParcel方法,我遇到了问题,即如何包裹SocketThread类对象等?

回答

1

如何包裹Socket和Thread类对象等?

你不行。

当用户旋转屏幕时,所有客户端对象数据丢失/重置,客户端必须重新连接到服务器。

使用保留片段或onRetainNonConfigurationInstance(),或一些基于关闭的lifecycle architecture components(例如,可能LiveData),跨保留此配置更改。

+0

如果我使用服务来维护客户端连接,是否可以轻松解决? – user963241

+0

@ user963241:如果您想要在UI离开前台后尝试维持连接一段时间,则可能需要一项服务。您不需要通过配置更改来维护连接的服务。 – CommonsWare

+0

好吧,在我的UI离开前台之后,我将使用服务来维持连接一段时间,但随后通过使用服务,我是否仍然需要在配置更改期间维护此类连接?换句话说,唯一的解决方案是使用像'onRetainNonConfigurationInstance'这样的东西? – user963241