並且預先感謝您的幫助。將套接字對象傳遞給Android的另一個活動
在Android中的活動之間傳遞對象的最佳做法是什麼?我讀到了將序列化對象作爲字符串傳遞給putExtras並將其添加到捆綁包的可能性,然後再開始下一個intent。但是是一個可串行化的Socket?
我想通過插座,爲PrintWriter,BufferedReader類的實例,主要活動打開的連接和輸入/輸出流,因此在未來的意圖可以關閉等。
我也想知道是否有後是其他/更好的選擇來考慮,因爲我猜有。
謝謝。
並且預先感謝您的幫助。將套接字對象傳遞給Android的另一個活動
在Android中的活動之間傳遞對象的最佳做法是什麼?我讀到了將序列化對象作爲字符串傳遞給putExtras並將其添加到捆綁包的可能性,然後再開始下一個intent。但是是一個可串行化的Socket?
我想通過插座,爲PrintWriter,BufferedReader類的實例,主要活動打開的連接和輸入/輸出流,因此在未來的意圖可以關閉等。
我也想知道是否有後是其他/更好的選擇來考慮,因爲我猜有。
謝謝。
您必須使用公共靜態變量或使用單例模式的包裝類。
如果你不想啓動服務,你可以創建一個全局變量。
對於像這樣的插座創建一個Singleton模式:
public class SocketSingleton {
private static Socket socket;
public static void setSocket(Socket socketpass){
SocketSingleton.socket=socketpass;
}
public static Socket getSocket(){
return SocketSingleton.socket;
//return socket;
}
}
然後在代碼只是改變全局值:
public void changeScreen(Socket socket, String ip, int port) {
SocketSingleton.setSocket(socket);
Intent i = new Intent(getActivity().getApplicationContext(), ControlActivity.class);
i.putExtra("ip", ip);
i.putExtra("port",port);
startActivity(i);
}
感謝@SimonSays。 1)是否使用常用的靜態變量和建議這樣做?使用靜態變量有什麼缺點? 2)這兩個活動我想通過顯然擴展活動類之間的對象已經。你能給我一個例子,你將如何繞過與單身變量包裝他們與另一個類? – user1555863 2012-07-27 07:06:25
1.我不會說推薦使用靜態變量,但有時它只是傳遞物體的最簡單方法。我個人,我儘量避免它,但仍然使用它來。缺點是你不知道對象什麼時候會被垃圾收集。 2.這是相反的方式。你可以將你的流對象封裝在單例中,而不是活動。 – SimonSays 2012-07-27 21:59:36