2017-06-14 31 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

相關問題