Я столкнулся с проблемой того, что HTTP-запросы нашего Android-приложения довольно часто истекают, и мне нужно найти разумный уровень для пределов времени ожидания и количества повторных попыток.
Текущее реализованное решение (не моя реализация) с использованием apache DefaultHttpClient выполняет три попытки вручную с увеличением таймаутов, как показано здесь:
private static final int[] CONNECTION_TIMEOUTS = new int[] {4000, 5000, 10000};
private static final int[] SOCKET_TIMEOUTS = new int[] {5000, 8000, 15000};
Мне трудно понять обоснование того, почему текущая реализация использует увеличивающиеся таймауты и что это пытается решить. Приложение большую часть времени используется, когда телефон подключен к 3G. Есть ли у кого-нибудь объяснение, почему увеличение времени ожидания при каждой повторной попытке было бы предпочтительным, или, возможно, у кого-то есть лучший способ обработки HTTP-запросов в сетях 3G?