#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 для хранения вашего класса подключения.