Подтвердить что ты не робот

Android: один или несколько экземпляров HttpClient для каждого приложения

До недавнего времени наше приложение совместно использовало один экземпляр Apache HttpClient, используя ThreadSafeClientConnManager для всего приложения. Экземпляр http-клиента был проведен с помощью одноэлементного класса.

Поскольку мне не нравится шаблон singleton для его многочисленных проблем, я реорганизовал наш API-интерфейс как объект с потоком, но теперь для каждого потока (что в основном означает для каждого действия/службы в нашем случае) создается новый экземпляр HttpClient.

Не то, чтобы у меня были проблемы с этим новым подходом, но я читал, что люди Apache предлагают иметь только один экземпляр для каждого приложения по причинам производительности.

Визуально, что мы делали раньше:

HttpClient (thread safe)
          |
          |
         /\
        /  \
Activity1...ActivityN

Теперь мы делаем следующее:

Activity1 ... ActivityN
    |             |
    |             |
HttpClient1   HttpClientN

Как вы, ребята, делаете это в своих приложениях? Если вы используете один HttpClient в своем приложении и потенциально много параллельных потоков, как вы обрабатываете доступ к нему?

4b9b3361

Ответ 1

В двух словах:

Создайте экземпляр org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager и используйте его при построении DefaultHttpClient.

Ссылка на источник образца: Многопоточный доступ HttpClient

Изменить: Извините, не видел ваше редактирование перед публикацией. В этом случае нет ничего неправильного в "Синглтоне".