【发布时间】:2016-11-30 03:15:39
【问题描述】:
我的应用程序是一个 rss 提要,并在启动和刷新时检索数据,但在没有 Internet 连接时应用程序崩溃。如何检查 Internet 连接并在没有连接时显示 toast
【问题讨论】:
-
很多例子是他们在谷歌stackoverflow.com/questions/1560788/…
标签: android android-studio crash
我的应用程序是一个 rss 提要,并在启动和刷新时检索数据,但在没有 Internet 连接时应用程序崩溃。如何检查 Internet 连接并在没有连接时显示 toast
【问题讨论】:
标签: android android-studio crash
您可以使用此功能检查是否有互联网
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
【讨论】:
检查是否已连接到网络。
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;
}
}
【讨论】:
使用这个功能
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"/>
【讨论】: