2014-01-11 53 views
1

我有需要上网,上网的时候是优秀它完美的作品时,有没有互联网它的工作原理也很好,因为我ADDE这个代码请检查是否存在互联网或不是一个应用程序:互联网连接错误阻止应用程序

private boolean isNetworkAvailable() { 
     ConnectivityManager connectivityManager 
       = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
    } 

如果它返回false我向用户敬酒说没有互联网;

但是当互联网不好时,应用程序会得到一个错误,或者它只是阻止并获得黑屏30秒,然后显示错误... 那么我该怎么做才能解决这个问题我怎么才能看到互联网是穷人和避免这种情况...

回答

0

可以使timeouts小于30000毫秒提前放弃。但是确实没有办法让连接不良的连接正常工作。

1

使用这一个:

public boolean isConnectingToInternet() { 
    ConnectivityManager connectivity = (ConnectivityManager)this 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (connectivity != null) { 

     NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
     if (info != null) 
      for (int i = 0; i < info.length; i++) 
       if (info[i].getState() == NetworkInfo.State.CONNECTED) { 

        return true; 
       } 

    } 

    return false; 
} 

现在检查你的活动。

if(isConnectingToInternet()){ 

    // do your stuff using internet 

} else{ 

    // display Toast here 

} 
+0

thnaks,但我可以知道为什么这段代码比我的更好吗?它做什么更多? –

+0

在你的代码中,你没有指定如果网络可用,则它返回true,否则它是false。因此,无论何时登记活动,您都可以得到您想要的。 – Piyush

+0

谢谢,但我不明白你的意思是不好意思;因为我的方法在没有连接的情况下也让我错误......如果你解释你的意思,我将不胜感激。 –

0

要执行基于网络的操作,AsyncTask应该是选择。

相关问题