没有互联网时应用程序崩溃[重复]
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"/>
【讨论】:
以上是关于没有互联网时应用程序崩溃[重复]的主要内容,如果未能解决你的问题,请参考以下文章
SocketTimeoutException 使应用程序崩溃
Xcode 9.3 使用 URL 方案(深度链接)调用时构建崩溃 [重复]