Как использовать TCP-соединение действия в другом действии

#android #android-activity #tcp

#Android #android-действие #tcp

Вопрос:

У меня есть класс TCP-соединения, который работает в моем основном действии. При нажатии кнопки я начинаю новое действие. Основное действие по-прежнему остается подключенным к серверу при запуске нового. Я хочу использовать это соединение в новом действии для отправки сообщения на сервер. Есть ли способ использовать это соединение в новом действии или я должен закрыть существующее соединение и снова подключиться в новом действии?

Ответ №1:

Самый простой способ — использовать статический синглтон для хранения объекта TCP connection ( 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 для хранения вашего класса подключения.