如何在另一个活动中使用活动的TCP连接

时间:2014-07-01 09:17:09

标签: android android-activity tcp

我有一个TCP连接类,可以在我的主要活动中使用。单击按钮时,我将开始一项新活动。启动新活动时,主活动仍将保持与服务器的连接。我想在新活动中使用此连接向服务器发送消息。有没有办法在新活动中使用此连接,还是应该关闭现有连接并在新活动中再次连接?

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用静态单例来保存TCP连接对象(Socket):

public class SocketHolder {
      private Socket socket;
      public Socket getSocket() { return socket; }
      public void setSocket(Socket socket) {this.socket = socket;}

      private static final SocketHolder holder = new SocketHolder();
      public static SocketHolder getInstance() {return holder;}
    }

将其设置为一个这样的活动:

SocketHolder.getInstance().setSocket(mySocket);

并在另一个中得到它:

Socket mySocket = SocketHolder.getInstance().getSocket();

另外,您当然可以使用Singleton来保存Connection类。