Est-ce que quelqu'un sait comment gérer un ConnectTimeoutException? Je poste des variables dans une URL en utilisant AsyncTask mais ma connexion internet est choquante, donc je reçois des données nulles en raison d'une exception ConnectTimeoutException. Quelles sont les meilleures façons de gérer cela par exemple, si le temps se produit, essayez de courir à nouveau etc je n'ai pas eu ce problème avant donc ne pas la moindre idée de la façon de gérer, mais je pense qu'il a besoin de manipuler pour améliorer l'expérience utilisateur. donc des idées?Comment gérer ConnectTimeoutException Android
0
A
Répondre
0
Vous pouvez utiliser un Handler pour laisser votre Activity
savez que vous avez un ConnectTimeoutException
Catch cette exception dans votre AsyncTask et d'envoyer un message à votre Handler
(puis faites ce que vous voulez)
Pour information, AsyncTask ne sont pas conçus pour une longue opération en cours d'exécution, le cas échéant, vous devez utiliser un Thread
0
voici comment vous shoud vérifier l'état du réseau
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
//execute your AsyncTask method
} else {
//maketoast..."No network connection available"
}
0
Faire une classe distincte, appelée aide d'activité, et mettre en œuvre dans votre tâche async pour toutes les classes que vous faites dans ce qui nécessite un appel webservice.
public class ActivityHelper {
public static final String NETWORK_CONNECTION_MESSAGE = "No Network Connection. Please make sure you have a Network Connection.";
public static boolean isNetworkPresent(Context applicationContext){
boolean hasService = false;
NetworkInfo info=(NetworkInfo)((ConnectivityManager)applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
hasService = (info==null || !info.isConnected())?false:true;
return hasService;
}
}
appel Helper d'activité dans "doInBackground" Méthode un peu comme ça ..
private class YourAsyncTask extends AsyncTask<String, Void, String> {
Message message = new Message();
String type = "";
protected void onPreExecute() {
ActivityHelper.onUserInteraction(getApplicationContext());
dialog = ProgressDialog.show(LocationType.this,
"Connecting to server", "Please wait...", true, true);
dialog.setCancelable(false);
}
protected String doInBackground(final String... args) {
try {
if(!ActivityHelper.isNetworkPresent(getApplicationContext())){
message.what = ActivityHelper.NONETWORKCONNECTION;
return null;
}
} catch (Exception e) {
Log.e(this.getClass().getName(),
"Exception Message");
}
return null;
}
Questions connexes
- 1. android - Comment gérer l'erreur d'exécution Android
- 2. Comment gérer onClickListener dans android?
- 3. Comment gérer networkonmainthreadexception dans Android?
- 4. Comment gérer OutOfMemoryError dans Android?
- 5. Comment gérer plusieurs notifications Android
- 6. Comment gérer les dépendances Android
- 7. Android - Gérer les notifications
- 8. gérer l'événement android
- 9. Android: gérer ListView Recycle
- 10. android camera2 gérer zoom
- 11. Comment gérer l'orientation de l'écran mobile android
- 12. Comment gérer des activités simultanées sous Android?
- 13. android - comment gérer la réponse ws
- 14. comment gérer le service Redémarrer dans android
- 15. android comment gérer l'exception de mémoire
- 16. comment gérer android taille différente de l'appareil
- 17. Android - comment gérer la classe locale
- 18. comment gérer multiLanguage de l'application android?
- 19. Comment gérer différentes tailles d'écran sur Android
- 20. comment gérer les espaces dans l'URL Android
- 21. Android: tâche asynchrone, comment gérer efficacement?
- 22. Android - Comment gérer Dialog pendant la rotation
- 23. comment gérer l'intention de la caméra android
- 24. Comment gérer les positions dans Gallery android?
- 25. Comment gérer les différentes interfaces utilisateur Android
- 26. Comment gérer le clic ListView dans Android
- 27. Comment gérer les onglets sur Android 2.2+?
- 28. android- Comment gérer le service Web Exception
- 29. comment gérer plusieurs émulateurs android dans Windows?
- 30. Comment gérer la sélection d'entrée Android SimpleExpandableListAdapter
Pour votre information, ce code est de [ici] (http://developer.android.com/training/basics/network -ops/connecting.html) si vous voulez plus d'informations – Eliud