[英]Transfer Socket from one Activity to another
我試圖將Socket
屬性從一個Activity
轉移到另一個Activity
但我不能使用Intent.putExtra()
方法。
socket = new Socket("10.0.0.9", port);
i = new Intent(getBaseContext(), MainActivity.class);
i.putExtra("mysocket", socket);
我如何將Socket
從一個Activity
轉移到另一個Activity
?
您不能將“套接字”從一個活動傳遞到另一個活動,但您確實有其他選擇。
選項1 。 創建一個帶有對Socket的靜態引用的類,並以這種方式訪問它。 在您的第一個Activity中設置Socket,然后可以從第二個Activity中靜態訪問該Socket。
例如。
public class SocketHandler {
private static Socket socket;
public static synchronized Socket getSocket(){
return socket;
}
public static synchronized void setSocket(Socket socket){
SocketHandler.socket = socket;
}
}
然后,您可以通過從應用程序的任何位置調用SocketHandler.setSocket(套接字)或SocketHandler.getSocket()來訪問它。
選項2 。 覆蓋應用程序並在其中具有對套接字的全局引用。
例如。
public class MyApplication extends Application {
private Socket socket;
public Socket getSocket(){
return socket;
}
public void setSocket(Socket socket){
SocketHandler.socket = socket;
}
}
此選項將要求您在清單文件中指向您的應用程序。 在清單的應用程序標記中,您需要添加:
android:name="your.package.name.MyApplication"
然后,您可以通過在“活動”中獲取對應用程序的引用來訪問它:
MyApplication app = (MyApplication)activity.getApplication();
Socket socket = app.getSocket();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.