簡體   English   中英

將Socket從一個Activity轉移到另一個Activity

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM