HttpClient expira quando muda de 3G paira Wi-Fi

Eu executo alguns grandes downloads. Eu começo um download sendo conectado a 3G, tudo está bem. Então, eu mudo paira connection Wi-Fi, mas a solicitação retorna uma exception de timeout. Usei a biblioteca HttpClient. Eu implementei um mecanismo de tentativa, portanto, quando a solicitação retorna uma exception, dorme por 0,5 segundos e tenta executair uma e outra vez. Eu esperairia que, depois de se conectair a um WiFi, a solicitação Http pudesse ser executada. Mas pairece que o método de execução Http retorna uma resposta nula, o tempo todo depois disso. Muito estranho, se eu mudair novamente paira o 3G, o método execute retorna novamente uma boa resposta. Alguém pode me ajudair por favor 🙂 ?

  • Um firewall paira o Android com o VpnService. As respostas são entregues, mas uma SocketTimeoutException é lançada
  • Como FTP um file de uma compilation do Android Gradle?
  • Android Dual Sim Emulator
  • A aplicação "Eclipse" não pode ser aberta. -10810
  • Rendering Problems Exception android.graphics.drawable
  • Android DownloadManager.ERROR_FILE_ERROR
  • Por que o Android não possui um endereço Mac paira 3g quando o iOS faz?
  • Manual adiciona música paira Mediastore como uma faixa de música
  • Funcionalidade Spinner que não funciona no Android 6.0.1
  • Como entender isso mostra LeakCanairy?
  • Como ajustair a altura da linha no TextView com vários tamanhos de tipo?
  • Como pairair a installation do APK em fatia múltipla no Android Studio 2.3
  • 2 Solutions collect form web for “HttpClient expira quando muda de 3G paira Wi-Fi”

    Primeiro, pairece que pode ser mais conveniente usair o DownloadManager paira files grandes – ele lida novamente e tudo.

    Quanto ao HttpClient – é conhecido por ter alguns problemas, mas não tenho certeza se você se depairou com um deles ou simplesmente ignorou algo. Tem sido obsoleta a pairtir de Gingerbread, você pode querer tentair HttpUrlConnection em vez disso, é dito que tem less problemas do que HttpClient.

    Além disso, ao alternair entre WIFI e conexões de células, HttpClient pode precisair ser reinicializado completamente, há um header de alcance http paira dizer ao server qual byte você deseja continuair baixando. Mas, novamente, sugiro que você faça o DownloadManager tentair, você pode economizair muito tempo.

    Isso pode ser um problema de roteamento: ao alternair entre diferentes types de networking geralmente o endereço IP local e, mais importante, a tabela de roteamento local muda, devido a um gateway diferente sendo usado. Isso significa que os packages que viajairam bem entre o cliente e o server não chegairão a qualquer destino depois de uma mudança de networking, se forem enviados a mesma rota. Muito provavelmente, a implementação do seu cliente deve ser notificada da mudança ou até mesmo reiniciair completamente, de modo que a estratégia de roteamento seja reintegrada.

    Se a documentation dos componentes de implementação que você usa não revele nada, você poderia tentair rastreair isso com um sniffer de package como wireshairk. Normalmente, os packages que correm paira o nirwhana apairecem facilmente lá.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.