没有互联网时应用程序崩溃[重复]

Posted

技术标签:

【中文标题】没有互联网时应用程序崩溃[重复]【英文标题】:App crashes when there is no internet [duplicate] 【发布时间】:2016-11-30 03:15:39 【问题描述】:

我的应用程序是一个 rss 提要,并在启动和刷新时检索数据,但在没有 Internet 连接时应用程序崩溃。如何检查 Internet 连接并在没有连接时显示 toast

【问题讨论】:

查看此链接tutorialspoint.com/android/android_network_connection.htm 参考How to check internet access on Android? InetAddress never timeouts... 很多例子是他们在谷歌***.com/questions/1560788/… 【参考方案1】:

您可以使用此功能检查是否有互联网

public boolean isConnected() 
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();

您还需要将此添加到清单文件中

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

然后检查一下

if(isConnected)
    //Connected to the internet

else
    //Handle error and show toast

你可以在这里找到更详细的答案 How to check internet access on Android? InetAddress never times out

【讨论】:

【参考方案2】:

检查是否已连接到网络。

private boolean isNetworkConnected() 
  ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

  return cm.getActiveNetworkInfo() != null;
 

检查互联网是否可用

public boolean isInternetAvailable() 
        try 
            InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name
            return !ipAddr.equals("");

         catch (Exception e) 
            return false;
        

    

【讨论】:

您缺少权限【参考方案3】:

使用这个功能

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

检查互联网是否连接

if(isNetworkConnected)


并在您的清单文件中添加以下权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

【讨论】:

以上是关于没有互联网时应用程序崩溃[重复]的主要内容,如果未能解决你的问题,请参考以下文章

运行构建时应用程序不断崩溃[重复]

检查 swift 中是不是有可用的互联网连接 [重复]

SocketTimeoutException 使应用程序崩溃

Xcode 9.3 使用 URL 方案(深度链接)调用时构建崩溃 [重复]

setOnClickListener 使我的应用程序崩溃 [重复]

相机崩溃[重复]