Comment pouvez-vous arrêter une boîte de dialogue de progression en cours d'exécution lorsque des gouttes d'accès au réseau?

StackOverflow https://stackoverflow.com/questions/4367936

  •  09-10-2019
  •  | 
  •  

Question

J'ai une application qui va à un site Web XML grab pour le traitement. Ce processus est dans un thread séparé et fonctionne très bien quand j'ai 3G ou WiFi disponible. J'ai aussi un code qui vérifie signal avant le fil en cours d'exécution en fait il ne tentera pas de pas de connectivité .

Au cours de mes tests, je suis entré dans un bâtiment qui a bloqué tous les signaux de sorte que le processus a commencé alors que je l'extérieur et avait signal, mais quand je suis allé à l'intérieur du signal a chuté et mon dialogue Progression juste continué à courir, Je devais arrêter manuellement vers le bas du programme pour l'obtenir pour récupérer.

Y at-il une bonne façon de traiter cela sans demander à l'utilisateur de fermer manuellement l'application si cette situation se produit?

Était-ce utile?

La solution

Paramètres de délai d'approvisionnement à vos prises de HttpClientand SocketTimeoutException

HttpParams httpParams=new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpClient httpClient=new DefaultHttpClient(httpParams);
try {
    httpClient.execute(new HttpGet("http://myserver.xml"));
}
    catch(SocketTimeoutException ex){
        //Perform Timeout i.e. cancle progress dialog
    }
    catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top