Он не сохраняет соединение открытым, но также не закрывает его явно - если вы читаете в сокете при запуске WiFi, вы не получите EOF обратно на чтение! Вам нужно будет обнаружить изменение подключения с помощью BroadcastReceiver и самостоятельно закрыть сокет.