2015-11-07 1 views
1

comment faire ce code en arrière-plan pour toujours et toujours détecter s'il y a un accès Internet ou non (pas de connexion internet) et montrer un toast quand il n'y a pas d'accès internet?montrer toast quand il n'y a pas d'accès Internet android

here is ce que je veux (Voir la réponse miaou meo), mais il est pour détecter Internet

// check connectivity (Internet access) 
    private boolean checkConnectivity() { 
     System.out.println("executeCommand"); 
     Runtime runtime = Runtime.getRuntime(); 
     try { 
      Process mIpAddrProcess = runtime 
        .exec("/system/bin/ping -c 1 8.8.8.8"); 
      int mExitValue = mIpAddrProcess.waitFor(); 
      System.out.println(" mExitValue " + mExitValue); 
      if (mExitValue == 0) { 
       img_c1.setImageResource(R.drawable.index2); 
       return true; 
      } else { 
       img_c2.setImageResource(R.drawable.index2); 
       return false; 
      } 
     } catch (InterruptedException ignore) { 
      ignore.printStackTrace(); 
      System.out.println(" Exception:" + ignore); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      System.out.println(" Exception:" + e); 
     } 
     return false; 
    } 

Répondre

2

Tout d'abord, sa mauvaise idée d'exécuter ce code toujours en arrière-plan.

Utilisez plutôt BroadCastReceiver pour vérifier l'état du réseau, de sorte qu'il ne active au moment du changement d'état du réseau,

Vous devez vous enregistrer votre BroadcastReceiver pour le réseau événement de changement d'état. Ainsi, lorsque des changements surviennent sur le périphérique pour un événement de diffusion réseau Android, votre BroadcastReceiver écoutera cet événement et affichera Toast en fonction de cela.

bons tutoriaux: http://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html

http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/

+0

je voudrais utiliser un récepteur de radiodiffusion, mais ce lien est plutôt de détecter une connexion Internet, pourriez-vous me dire comment utiliser mon code pour détecter un accès Internet (envoi de pings) dans ce récepteur de diffusion http://stackoverflow.com/questions/3767591/check-intent-internet-connection – MaggotSauceYumYum

+0

des indices? @ user370305 – MaggotSauceYumYum

+0

Pourquoi voulez-vous faire un ping vers un serveur externe? Juste pour vérifier la connexion internet? – user370305