Apache FTPClient: В каком потоке должен / может быть запущен «disconnect ()»? - PullRequest
0 голосов
/ 29 апреля 2020

My Android приложение (мин. API 24, целевой API 27, Java 8) использует Apache FTPClient.

Все длительные операции, такие как вход в систему, загрузка, загрузка, ... запустить doInBackground из AsyncTask (он даже выдает исключение, если вы попытаетесь запустить его в главном потоке), и все BufferedReader s, ... закрываются в соответствии с предложением finally в пределах.

onPostExecute возвращает сообщения об ошибках, ... используя поддельный обработчик завершения, и в настоящее время он также заботится об отключении от FTP-сервера, вызывая этот код:

private void logout() {
    if(ftpClient!=null && ftpClient.isConnected()) {
        try {
            ftpClient.disconnect();
        } catch (IOException e) {
            //No point
        }
    }
}

I проверил javado c, но нет никакого упоминания о потоке для disconnect(), и даже там не всегда вызывается из finally.

Вопрос: Есть disconnect() даже может зависнуть, например, connect() (например, если вы даете ему неверный IP-адрес), и можно ли запустить его в главном потоке (= onPostExecute)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...