Я столкнулся с той же проблемой в одном из моих проектов.
HttpConnectionParams.setConnectionTimeout(httpParams, 20000);
HttpConnectionParams.setSoTimeout(httpParams, 20000);
, но я не знаю, почему вышеупомянутый код сниппер не работал в случайных случаях. Тайм-аут раньше случался, но не через 20 секунд в моем случае.
Так что я придумал немного хакерский подход. Я знаю, что это не рекомендуется. Но вы можете найти его полезным.у вас будет 3 сценария, в которых вы будете закрывать диалоговое окно и двигаться дальше.
1) закрывать диалоговое окно, как только получите ответ.
2) закрывать диалоговое окно, если истекает время ожидания
3) Напишите логику для закрытия диалога в handler.post dealyed. Убедитесь, что вы всегда упоминаете задержку как то, что вы дали в setSoTimeout
(не рекомендуется, но полезно)
Так что в худшем случае, если вы неполучить ответ / тайм-аут в указанной продолжительности тайм-аута.Третий подход всегда будет работать.
Надеюсь, эта помощь.